fork download
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <sys/wait.h>
  5. #include <signal.h>
  6. //----------------------------------------------------------
  7. void signal_handler (int signal)
  8. {
  9. int status;
  10. pid_t pid;
  11. if (signal == SIGCHLD)
  12. {
  13. pid = wait (&status);
  14. printf ("Il processo %i si รจ concluso restituendo "
  15. "il valore %x.\n",
  16. pid, WEXITSTATUS (status));
  17. }
  18. }
  19. //----------------------------------------------------------
  20. int
  21. main (void)
  22. {
  23. pid_t pid;
  24. //
  25. signal (SIGCHLD, signal_handler);
  26. //
  27. pid = fork ();
  28. if (pid == 0)
  29. {
  30. sleep (1);
  31. printf ("ciao!\n");
  32. exit (7);
  33. }
  34. printf ("Ho avviato il processo %i.\n", pid);
  35. //
  36. sleep (60);
  37. //
  38. return (0);
  39. }
Success #stdin #stdout 0.01s 1720KB
stdin
Standard input is empty
stdout
ciao!
Ho avviato il processo 20755.
Il processo 20755 si è concluso restituendo il valore 7.