linux下C_PID

函數名 解釋
pid_t getpid(void); 獲取當前進程PID
pid_t getppid(void); 獲取父進程PID,若無返回0
uid_t getuid(void) 獲取當前進程user的ID
uid_t geteuid(void) 獲取進程有效用戶ID(與系統資源使用有關,涉及權限)(effective user id)
gid_t getgid(void) 獲取用戶組ID(group id)
gid_t getegid(void) 獲取有效用戶組ID(與上面uid對應)
pid_t fork() fork函數,新建一個子進程,與父進程公用代碼段
pid_t wait(int *stat_loc) wait 系統調用會使父進程阻塞直到一個進程結束或者父進程接收到信號,若父進程無子進程則立即返回,成功返回時返回值時子進程PID,否則-1.並設置全局變量errno.stat_loc,時子進程的退出狀態,即子進程exit或return的值(詳細說明查man手冊,而且errno總是沒用)
pid_t waitpid(pid_t pid,int *stat_loc,int options) 等待指定子進程直到子進程返回pid爲正,爲等待指定進程。                    pid=0,等待當前組ID相同組ID的其他進程。pid=-1,==wait,pid<-1,等待任何一個組ID等於pid絕對值的進程。              options表示父進程的狀態:WNOHANG(wnohang):父進程沒有子進程時立即返回WUNTACHED(wuntached):子進程結束返回時,子進程退出狀態不可得。
int execl(const char *path,const char *arg…);//////int execlp(const char *file,const char *arg…) ;///// int execle(const char*path,char *const argv[]);////int execv(const char *path,char *const arg[]);/////int ececvp(const char *file,char *const argv[]) exec調用保留當前的pid,重新申請進程的數據段,代碼段等進程模塊arg 是所執行的文件的參數,必需以空指針結尾 ,(區別貌似不大,也沒注意過,知道的可以在下面評論 )
int kill(pid_t pid,int sig) 殺死pid的進程pid=0 ,sig信號發給同組所有進程pid=-1,發給所有可以發給的進程。     pid<-1,發給所有用戶組中ID是-pid的進程。         sig=0,什麼也不發生,一般都是宏。          返回值 0 success -1 error 同時errno被被設置

常用頭文件有
<unistd.h>
<errno.h>
<sys/wait.h>
<sys/types.h>
基本的進程函數都列舉在這裏了。
編譯時候加-lm連接數學函數庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章