1. #include <unistd.h>
2. #include <sys/types.h>
3. #include <stdio.h>
4.
5.
6.
7. void print_exit()
8. {
9. printf("the exit pid:%d/n",getpid() );
10. }
11.
12. main ()
13. {
14. pid_t pid;
15. atexit( print_exit ); //注册该进程退出时的回调函数
16. pid=fork();
17. if (pid < 0)
18. printf("error in fork!");
19. else if (pid == 0)
20. printf("i am the child process, my process id is %d/n",getpid());
21. else
22. {
23. printf("i am the parent process, my process id is %d/n",getpid());
24. sleep(2);
25. wait();
26. }
27.
28. }
我知道fork()有两个返回值,我有一下不明白的fork()以后,根据返回值执行else if(pid == 0)()里面的程序,执行完了,程序不是完了,退出了这个函数。什么时候执行父进程里面的程序
困惑,希望那位帮忙解释一下! |