首页 > 代码库 > Linux-进程控制中的函数

Linux-进程控制中的函数

1.几个创建进程函数的对比

    ?#fork():

    ?    ?源码:

<script src="https://code.csdn.net/snippets/511925.js" type="text/javascript"></script>

    ?    ?执行结果:

    ?    ?    ?in the parent process!

    ?    ?    ?in the child process!

    ?    ?分析:fork()调用一次,返回两次,分别在父进程和子进程返回(但是顺序不确定)

    ?    ?    ?

    ?#vfork()

    ?    ?源代码:

<script src="https://code.csdn.net/snippets/511927.js" type="text/javascript"></script>

    ?    ?执行结果:

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

    ?    ?    ?


Linux-进程控制中的函数