泉州免费网站制作,平远县建设工程交易中心网站,wordpress中国优化,如何建立网站教材目录一、wait二、waitpid(1)参数#xff1a;pid(2)参数#xff1a;status(3)参数#xff1a;options(4)返回值wait 与 waitpid 这两个函数的作用是#xff1a;等待子进程退出#xff0c;在子进程退出后释放子进程资源#xff0c;防止子进程变成僵尸进程。但准确的说…
目录一、wait二、waitpid(1)参数pid(2)参数status(3)参数options(4)返回值wait 与 waitpid 这两个函数的作用是等待子进程退出在子进程退出后释放子进程资源防止子进程变成僵尸进程。但准确的说它们的作用是处理已经退出的子进程并获取子进程的退出返回值。 来举个例子如果wait或者waitpid函数是在程序运行的第10秒才会被执行到但是在程序运行的第5秒就已经有子进程A退出了你觉得当运行到wait或者waitpid函数的时候会去处理子进程A吗 答案是会的因为准确的说它们的功能就是处理已经退出的子进程并获取子进程的退出返回值。
一、wait pid_t wait(int *status); 作用如果调用时还没有已经退出的子进程那么将阻塞等待任意一个子进程退出。
int *status使用status参数作为输出参数获取子进程的退出返回值。 返回值如果成功处理退出的子进程就返回子进程的pid失败返回-1。 注意因为这个函数是一种阻塞等待当阻塞被打断时意味着这个函数处理失败。
二、waitpid pid_t waitpid(pid_t pid, int *status, int options); 作用处理退出的子进程但根据操作选项options的不同也会分为不同的情况。
(1)参数pid
pid含义-1等待任意一个子进程子进程pid等待该子进程pid这个参数常用的两个选项
-1代表着等待任意一个子进程退出然后进行处理。子进程pid专门去等待这个pid对应的子进程退出然后进行处理。
(2)参数status
int *status输出参数用于向外界返回退出子进程的返回值。
(3)参数options
options含义WNOHANG如果运行这个函数时子进程没有退出直接返回不等待。我们常用的就是这个选项WNOHANG表示当这个函数运行时如果没有子进程已经退出就直接返回并不阻塞等待。
(4)返回值 返回值共三种
如果成功处理了退出的子进程返回子进程pid如果当前没有子进程退出返回0如果处理出错返回-1