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