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

    ​    ​    ​


你可能感兴趣的:(linux内核,linux进程调度)