fork download
  1. int main()
  2. {
  3. struct sockaddr serveraddr, clientaddr;
  4. int sd, sd_new;
  5. socklen_t serverlen, clientlen;
  6. char buf[256];
  7.  
  8. sd = socket(AF_UNIX, SOCK_STREAM, 0);
  9. if (sd < 0)
  10. exit(-1);
  11.  
  12. bzero(&serveraddr, sizeof(serveraddr));
  13. bzero(&clientaddr, sizeof(clientaddr));
  14.  
  15. serveraddr.sa_family = AF_UNIX;
  16. strcpy(serveraddr.sa_data, MYSOCKET);
  17. serverlen = sizeof(serveraddr.sa_family) + strlen(serveraddr.sa_data);
  18. clientlen = sizeof(clientaddr.sa_family) + strlen(clientaddr.sa_data);
  19.  
  20. unlink(MYSOCKET);
  21.  
  22. if (bind(sd, (struct sockaddr *)&serveraddr, serverlen) < 0)
  23. exit(-2);
  24.  
  25. if (listen(sd, LISENQ) < 0)
  26. exit(-3);
  27.  
  28. for(;;)
  29. {
  30. sd_new = accept(sd, (struct sockaddr *)&clientaddr, &clientlen);
  31. if (sd_new < 0)
  32. exit(-4);
  33.  
  34. if (fork() == 0)
  35. {
  36. read(sd_new, buf, sizeof(buf));
  37.  
  38. printf("Got msg: %s", buf);
  39.  
  40. close(sd_new);
  41. exit(0);
  42. }
  43.  
  44. close (sd);
  45. }
  46. return 0;
  47. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c: In function ‘main’:
prog.c:3:21: error: storage size of ‘serveraddr’ isn’t known
prog.c:3:33: error: storage size of ‘clientaddr’ isn’t known
prog.c:5:5: error: unknown type name ‘socklen_t’
prog.c:8:5: error: implicit declaration of function ‘socket’ [-Werror=implicit-function-declaration]
prog.c:8:17: error: ‘AF_UNIX’ undeclared (first use in this function)
prog.c:8:17: note: each undeclared identifier is reported only once for each function it appears in
prog.c:8:26: error: ‘SOCK_STREAM’ undeclared (first use in this function)
prog.c:10:9: error: implicit declaration of function ‘exit’ [-Werror=implicit-function-declaration]
prog.c:10:9: error: incompatible implicit declaration of built-in function ‘exit’ [-Werror]
prog.c:12:5: error: implicit declaration of function ‘bzero’ [-Werror=implicit-function-declaration]
prog.c:16:5: error: implicit declaration of function ‘strcpy’ [-Werror=implicit-function-declaration]
prog.c:16:5: error: incompatible implicit declaration of built-in function ‘strcpy’ [-Werror]
prog.c:16:32: error: ‘MYSOCKET’ undeclared (first use in this function)
prog.c:17:5: error: implicit declaration of function ‘strlen’ [-Werror=implicit-function-declaration]
prog.c:17:48: error: incompatible implicit declaration of built-in function ‘strlen’ [-Werror]
prog.c:20:5: error: implicit declaration of function ‘unlink’ [-Werror=implicit-function-declaration]
prog.c:22:5: error: implicit declaration of function ‘bind’ [-Werror=implicit-function-declaration]
prog.c:23:9: error: incompatible implicit declaration of built-in function ‘exit’ [-Werror]
prog.c:25:5: error: implicit declaration of function ‘listen’ [-Werror=implicit-function-declaration]
prog.c:25:20: error: ‘LISENQ’ undeclared (first use in this function)
prog.c:26:9: error: incompatible implicit declaration of built-in function ‘exit’ [-Werror]
prog.c:30:9: error: implicit declaration of function ‘accept’ [-Werror=implicit-function-declaration]
prog.c:32:13: error: incompatible implicit declaration of built-in function ‘exit’ [-Werror]
prog.c:34:9: error: implicit declaration of function ‘fork’ [-Werror=implicit-function-declaration]
prog.c:36:13: error: implicit declaration of function ‘read’ [-Werror=implicit-function-declaration]
prog.c:38:13: error: implicit declaration of function ‘printf’ [-Werror=implicit-function-declaration]
prog.c:38:13: error: incompatible implicit declaration of built-in function ‘printf’ [-Werror]
prog.c:40:13: error: implicit declaration of function ‘close’ [-Werror=implicit-function-declaration]
prog.c:41:13: error: incompatible implicit declaration of built-in function ‘exit’ [-Werror]
prog.c:3:33: error: unused variable ‘clientaddr’ [-Werror=unused-variable]
prog.c:3:21: error: unused variable ‘serveraddr’ [-Werror=unused-variable]
cc1: all warnings being treated as errors
stdout
Standard output is empty