The GNU C Library - File Socket Example

Node: File Socket Example Prev: File Namespace Details Up: File Namespace

Example of File-Namespace Sockets

Here is an example showing how to create and name a socket in the file namespace.

	#include <stddef.h>
	#include <stdio.h>
	#include <errno.h>
	#include <stdlib.h>
	#include <sys/socket.h>
	#include <sys/un.h>
	
	int 
	make_named_socket (const char *filename)
	{
	  struct sockaddr_un name;
	  int sock;
	  size_t size;
	
	  /* Create the socket. */
	  
	  sock = socket (PF_UNIX, SOCK_DGRAM, 0);
	  if (sock < 0)
	    {
	      perror ("socket");
	      exit (EXIT_FAILURE);
	    }
	
	  /* Bind a name to the socket. */
	
	  name.sun_family = AF_FILE;
	  strcpy (name.sun_path, filename);
	
	  /* The size of the address is
	     the offset of the start of the filename,
	     plus its length,
	     plus one for the terminating null byte. */
	  size = (offsetof (struct sockaddr_un, sun_path)
	          + strlen (name.sun_path) + 1);
	
	  if (bind (sock, (struct sockaddr *) &name, size) < 0)
	    {
	      perror ("bind");
	      exit (EXIT_FAILURE);
	    }
	
	  return sock;
	}


Up: File Namespace