进程编程基本函数

来源:互联网 发布:开通淘宝店铺流程 编辑:程序博客网 时间:2024/06/12 00:52
pid_t fork(void)
功能:创建一个新进程
参数:无参
返回值:成功: 1、在父进程里面返回一个大于0的值(子进程PID)2、在子进程里面返回0
出错:返回-1

pid_t getpid(void):函数返回调用进程本身的PID
pid_t getppid(void):函数返回调用进程的父进程的PID

pid_t wait(int *status)
功能:阻塞接收子进程的退出状态,回收子进程的资源(收尸)
参数:status:用来接收子进程退出状态的值,这个值不是真正的子进程返回的值,这个值右移8位,才是子进程真正返回的值,或者使用WEXITSTATUS(status)。
返回值:成功返回回收子进程的PID,失败返回-1(在调用进程无子进程的情况下失败)

pid_t waitpid(pid_t pid, int *status, int options);
功能:回收子进程的退出状态
参数:pid:
pid>0:只等待进程ID等于pid的子进程,不管已经有其他子进程运行结束退出了,只要指定的子进程还没有结束,waitpid就会一直等下去。
pid=-1:等待任何一个子进程退出,此时和wait作用一样。
pid=0:等待其组ID等于调用进程的组ID的任一子进程。
pid<-1:等待其组ID等于pid的绝对值的任一子进程。
status:同wait
options:
WNOHANG:若由pid指定的子进程并不立即可用,则waitpid不阻塞,此时返回值为0
WUNTRACED:若某实现支持作业控制,则由pid指定的任一子进程状态已暂停,且其状态自暂停以来还未报告过,则返回其状态。
0:同wait,阻塞父进程,等待子进程退出。
返回值:
正常:结束的子进程的进程号
使用选项WNOHANG且没有子进程结束时:0
调用出错:-1

wait(NULL) ==> waitpid(-1,NULL,0)
原创粉丝点击