(1)分析用fork()函数生成子进程时,其返回值在父、子进程的差异 (2)分析_exit()与exit()在进程退出时的异同。
时间: 2023-06-16 08:05:52 浏览: 165
fork函数和子函数进程
1. fork()函数生成子进程时,其返回值在父、子进程的差异:
- 在父进程中,fork()函数返回新创建子进程的进程ID;
- 在子进程中,fork()函数返回0。
这就是为什么我们在编写fork()函数时,通常会在父进程中根据返回值判断是否创建成功,并对子进程进行相应的处理,而在子进程中则可以直接进行想要进行的操作。
2. _exit()与exit()在进程退出时的异同:
- 相同点:都是用于进程退出的函数;
- 不同点:
- _exit()是系统调用,直接终止进程,不会进行任何清理工作(如缓存数据的写回等),也不会调用已注册的函数;
- exit()是库函数,会先调用已注册的函数(如通过atexit()注册的函数),再进行清理工作,最后退出进程。
因此,我们通常在需要直接退出进程的情况下使用_exit()函数,而在需要进行一些清理工作后再退出的情况下使用exit()函数。
阅读全文