趁著休息這兩天,把基本的C linux API和標准庫的內容發布下~~,作為一個記錄,也提供給大家做參考,請多提comments。
Create process API定義在unistd.h中。
函數原型:
pid_t fork(void);
對子進程返回0,對父進程返回子進程pid.
如果父進程不處理子進程的exit status, 子進程就成為 Z process。
避免Z process:
1. 使用 pid_t waitpid(pid_t,int*,int);來阻塞等待子進程退出。
2. 父進程使用singal進行異步處理,當子進程結束時,發送SIGCHLD signal 給父進程,父進程收到SIGCHLD後再調用waitpid()。
關於信號的定義和操作見signal.h
<to be continue...>
摘自 leonzhang