socketpair.c 603 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <unistd.h>
  4. #include <sys/socket.h>
  5. #include <sys/wait.h>
  6. int main(int argc, char ** argv)
  7. {
  8. int sv[2];
  9. socketpair(AF_UNIX, SOCK_STREAM, 0, sv);
  10. int pid1 = fork();
  11. if (pid1 < 0) {
  12. printf("fork failed\n");
  13. return -1;
  14. }
  15. if (pid1 == 0) {
  16. close(sv[0]);
  17. write(sv[1], "hello world",12);
  18. return 0;
  19. }
  20. char buffer[20];
  21. int bytes;
  22. close(sv[1]);
  23. bytes = read(sv[0], buffer, 12);
  24. buffer[bytes] = 0;
  25. printf("%s\n", buffer);
  26. waitpid(pid1, NULL, 0);
  27. return 0;
  28. }