1.几个创建进程函数的对比
?#fork():
? ?源码:
? ?执行结果:
? ? ?in the parent process!
? ? ?in the child process!
? ?分析:fork()调用一次,返回两次,分别在父进程和子进程返回(但是顺序不确定)
? ? ?
?#vfork()
? ?源代码:
? ?执行结果:
? ? ?process id:12845
? ? ?gvar=2 var=5the child process id:12846
? ? ?gvar=1 var=6
? ? ?the parent process id:12845
? ? ?gvar=1 var=6
? ?分析:若是把vfork()换成fork(),输入结果变为:
? ? ? ? ? ?process id:12856
? ? ? ? ? ?gvar=2 var=5the parent process id:12856
? ? ? ? ? ?gvar=2 var=5
? ? ? ? ? ?gvar=2 var=5the child process id:12857
? ? ? ? ? ?gvar=1 var=6
? ? ? ? 说明,fork()创建进程时会复制父进程的资源,而vfork()不会复制父进程资源,与父进程共享地址空间 ? ?
? ? ?
时间: 2024-10-12 17:09:36