fork()函數以父進程為藍本復制一個進程,其ID號與父進程ID號不同。在linux環境下,fork()是以寫復制實現的,只有內存等與父進程不同,其他與父進程共享,只有在父進程或者子進程進行了修改后,才重新生成一份。
2、system()方式system()函數調用”/bin/sh –c command“執行特定的命令(可參考http://www.CUOXin.com/nufangrensheng/p/3512291.html),阻塞當前進程直到command命令執行完畢。
3、exec()方式在使用fork函數和system函數的時候,系統中會建立一個新的進程,執行調用者的操作,而原來的進程還會存在,直到用戶顯式地退出;而exec族的函數與之前的fork和system函數不同,exec族函數會用新進程代替原有的進程,系統會從新的進程運行,新的進程的PID值會與原來的進程的PID值相同。
新聞熱點
疑難解答