在Liunx下的系統調用函數存放在/usr/include/sys文件夾下。 進程的系統調用有 fork() ,vfork() wait() exit() sleep() 等,
fork()函數和vfork()函數的區別在於fork()函數拷貝父進程的上下文到子進程中, vfork()函數不拷貝到子進程中。 wait()函數
作用是中斷父進程的執行,恢復子進程的上下文,執行子進程。exit()函數表示中斷進程,使進程處於僵死狀態.
1. fork ():子進程拷貝父進程的數據段,代碼段
vfork ( ):子進程與父進程共享數據段
2. fork ()父子進程的執行次序不確定
vfork 保證子進程先運行,在調用exec 或exit 之前與父進程數據是共享的,在它調用exec
或exit 之後父進程纔可能被調度運行。
3. vfork ()保證子進程先運行,在她調用exec 或exit 之後父進程纔可能被調度運行。如果在
調用這兩個函數之前子進程依賴於父進程的進一步動作,則會導致死鎖。