爱程序网

进程产生的三种方式:fork、system和exec

来源: 阅读:

1、fork()方式

image

fork()函数以父进程为蓝本复制一个进程,其ID号与父进程ID号不同。在Linux环境下,fork()是以写复制实现的,只有内存等与父进程不同,其他与父进程共享,只有在父进程或者子进程进行了修改后,才重新生成一份。

2、system()方式

image

system()函数调用”/bin/sh –c command“执行特定的命令(可参考http://www.cnblogs.com/nufangrensheng/p/3512291.html),阻塞当前进程直到command命令执行完毕。

3、exec()方式

image

在使用fork函数和system函数的时候,系统中会建立一个新的进程,执行调用者的操作,而原来的进程还会存在,直到用户显式地退出;而exec族的函数与之前的fork和system函数不同,exec族函数会用新进程代替原有的进程,系统会从新的进程运行,新的进程的PID值会与原来的进程的PID值相同。

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助