#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#define SOCK_PATH "/tmp/sock "

int main(int argc, char *argv[])
{
	int sock,len;
	sock = socket(AF_UNIX, SOCK_STREAM, 0);
	struct sockaddr_un addrStruct;
  if (sock==-1)
  {
    printf("socket: %s", strerror(errno));
    return EXIT_FAILURE;
  }
  strcpy(addrStruct.sun_path, SOCK_PATH);
  addrStruct.sun_family=AF_UNIX;
  
  // remove socket if it already exists
  unlink(addrStruct.sun_path);
  
  // Bind socket to address in unix domain
  len = strlen(addrStruct.sun_path) + sizeof(addrStruct.sun_family);
  printf("%s\n", addrStruct.sun_path);
  if (bind(sock, (struct sockaddr *)&addrStruct, len)==-1)
  {
    printf("bind: %s\n", strerror(errno));
    return EXIT_FAILURE;    
  }
	if (!unlink(addrStruct.sun_path)) printf("server: unlink: %s", strerror(errno));
  close(sock);
  return EXIT_SUCCESS;
}
