#include <stddef.h> for offsetof.
[kopensolaris-gnu/glibc.git] / manual / examples / mkfsock.c
1 #include <stddef.h>
2 #include <stdio.h>
3 #include <errno.h>
4 #include <stdlib.h>
5 #include <sys/socket.h>
6 #include <sys/un.h>
7
8 int 
9 make_named_socket (const char *filename)
10 {
11   struct sockaddr_un name;
12   int sock;
13   size_t size;
14
15   /* Create the socket.  */
16   
17   sock = socket (PF_UNIX, SOCK_DGRAM, 0);
18   if (sock < 0)
19     {
20       perror ("socket");
21       exit (EXIT_FAILURE);
22     }
23
24   /* Bind a name to the socket.  */
25
26   name.sun_family = AF_FILE;
27   strcpy (name.sun_path, filename);
28   size = offsetof (name.sun_path) + strlen (name.sun_path) + 1;
29   if (bind (sock, (struct sockaddr *) &name, size) < 0)
30     {
31       perror ("bind");
32       exit (EXIT_FAILURE);
33     }
34
35   return sock;
36 }