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连接数学函数库

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