fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <signal.h>
  5.  
  6. void signchld (int signal){
  7. fprintf (stderr, "[X] child exited\n");
  8. }
  9.  
  10.  
  11. int main(){
  12. signal (SIGCHLD, signchld);
  13. int i;
  14. for(i=0;i<=300;i++){
  15. pid_t f;
  16. f=fork();
  17. if(f==0){
  18. //child
  19. usleep(3*1000000);
  20. fprintf (stderr, "[C1] %d\n",i);
  21. exit(0);
  22. fprintf (stderr, "[C2] %d\n",i);
  23. }else if(f>0){
  24. fprintf (stderr, "[P1] %d\n",i);
  25. usleep(20000000);
  26. fprintf (stderr, "[P2] %d\n",i);
  27. }
  28. }
  29. return 0;
  30. }
  31.  
Time limit exceeded #stdin #stdout #stderr 5s 2244KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
[P1] 0
[C1] 0
[X] child exited
[P2] 0
[P1] 1
[C1] 1
[X] child exited
[P2] 1
[P1] 2
[C1] 2
[X] child exited
[P2] 2
[P1] 3