Linux-进程控制中的函数

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()不会复制父进程资源,与父进程共享地址空间  ?    ?

    ?    ?    ?


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。