進程API
C語言進程
fork()
fork()用來創建一個子進程,子進程將拷貝父進程內存和代碼,并從父進程fork函數開始繼續執行。
fork()函數在父進程返回值為,子進程pid;在子進程返回 0;創建失敗返回負數。
wait()
在父進程中等待子進程執行完畢。
返回值:等待的子進程執行成功,返回該進程pid,失敗返回-1
waitpid()
可以控制父進程等待哪個子進程,waitpid()要在在進程本身有子進程的時候有用。
vfork()
使用vfork函數創建進程后,無需父進程使用wait等待。
getpid()
返回當前進程pid。
管道 pipe()
每個進程各自有不同的用戶地址空間,任何一個進程的全局變量在另一個進程中都看不到,所以進程之間要交換數據必須通過內核,在內核中開辟一塊緩沖區,進程A把數據從用戶空間拷到內核緩沖區,進程B再從內核緩沖區把數據讀走,內核提供的這種機制稱為進程間通信。
浙公網安備 33010602011771號