[PATCH 11/13] manual: Fix compiler errors in filesrv example.

Collin Funk collin.funk1@gmail.com
Sun Sep 28 22:46:04 GMT 2025


Previously this file failed to compile with the following errors:

    $ gcc manual/examples/filesrv.c
    manual/examples/filesrv.c: In function ‘main’:
    manual/examples/filesrv.c:37:3: error: implicit declaration of function ‘unlink’ [-Wimplicit-function-declaration]
       37 |   unlink (SERVER);
          |   ^~~~~~
    manual/examples/filesrv.c:40:10: error: implicit declaration of function ‘make_named_socket’ [-Wimplicit-function-declaration]
       40 |   sock = make_named_socket (SERVER);
          |          ^~~~~~~~~~~~~~~~~
    manual/examples/filesrv.c:46:54: error: passing argument 6 of ‘recvfrom’ from incompatible pointer type [-Wincompatible-pointer-types]
       46 |                          (struct sockaddr *) & name, &size);
          |                                                      ^~~~~
          |                                                      |
          |                                                      size_t * {aka long unsigned int *}
    In file included from manual/examples/filesrv.c:21:
    /usr/include/sys/socket.h:165:48: note: expected ‘socklen_t * restrict’ {aka ‘unsigned int * restrict’} but argument is of type ‘size_t *’ {aka ‘long unsigned int *’}
      165 |                          socklen_t *__restrict __addr_len);
          |                          ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

This patch fixes the missing declaration for unlink and uses
'socklen_t *' for the fourth argument of recv from. The
make_named_socket function is defined in the manual.
---
 manual/examples/filesrv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/manual/examples/filesrv.c b/manual/examples/filesrv.c
index 09c80c5999..9b39350568 100644
--- a/manual/examples/filesrv.c
+++ b/manual/examples/filesrv.c
@@ -20,6 +20,7 @@
 #include <stdlib.h>
 #include <sys/socket.h>
 #include <sys/un.h>
+#include <unistd.h>
 
 #define SERVER	"/tmp/serversocket"
 #define MAXMSG	512
@@ -30,7 +31,7 @@ main (void)
   int sock;
   char message[MAXMSG];
   struct sockaddr_un name;
-  size_t size;
+  socklen_t size;
   int nbytes;
 
   /* Remove the filename first, it's ok if the call fails */
-- 
2.51.0



More information about the Libc-alpha mailing list