wifexited?如果发生中断 wifexited的值是多少
这篇文章给大家聊聊关于wifexited,以及如果发生中断 wifexited的值是多少对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
进程什么状态wifstopped
进程什么状态wifstopped
wait()函数详细解释:
wait(等待子进程中断或结束)
相关函数 waitpid,fork
表头文件
#include
#include
定义函数 pid_t wait(int* status);
函数说明
wait()会暂时停止目前进程的执行,直到有信号来到或子进程结
束。如果在调用wait()时子进程已经结束,则wait()会立即返
回子进程结束状态值。子进程的结束状态值会由参数status返回,
而子进程的进程识别码也会一快返回。如果不在意结束状态值,则
参数status可以设成NULL。子进程的结束状态值请参考waitpid()。
返回值
如果执行成功则返回子进程识别码(PID),如果有错误发生则返回
-1。失败原因存于errno中。
附加说明
范例
#include
#include
#include
#include
main()
{
pid_t pid;
int status,i;
if(fork()==0){
printf(“This is the child process.pid=%d\n”,getpid());
exit(5);
}else{
sleep(1);
printf(“This is the parent process,wait for child...\n”;
pid=wait(&status);
i=WEXITSTATUS(status);
printf(“child’s pid=%d.exit status=^d\n”,pid,i);
}
}
执行
This is the child process.pid=1501
This is the parent process.wait for child...
child’s pid=1501,exit status=5
waitpid(等待子进程中断或结束)
相关函数 wait,fork
表头文件
#include
#include
定义函数 pid_t waitpid(pid_t pid,int* status,int options);
函数说明
waitpid()会暂时停止目前进程的执行,直到有信号来到或子进程
结束。如果在调用wait()时子进程已经结束,则wait()会立即
返回子进程结束状态值。子进程的结束状态值会由参数status返回,
而子进程的进程识别码也会一快返回。如果不在意结束状态值,则
参数status可以设成NULL。参数pid为欲等待的子进程识别码,
其他数值意义如下:
pid0等待任何子进程识别码为pid的子进程。
参数option可以为0或下面的OR组合:
WNOHANG如果没有任何已经结束的子进程则马上返回,不予以
等待。
WUNTRACED如果子进程进入暂停执行情况则马上返回,但结束
状态不予以理会。
子进程的结束状态返回后存于status,底下有几个宏可判别结束情
况:
WIFEXITED(status)如果子进程正常结束则为非0值。
WEXITSTATUS(status)取得子进程exit()返回的结束代码,一
般会先用WIFEXITED来判断是否正常结束才能使用此宏。
WIFSIGNALED(status)如果子进程是因为信号而结束则此宏值为
真
WTERMSIG(status)取得子进程因信号而中止的信号代码,一般
会先用WIFSIGNALED来判断后才使用此宏。
WIFSTOPPED(status)如果子进程处于暂停执行情况则此宏值为
真。一般只有使用WUNTRACED时才会有此情况。
WSTOPSIG(status)取得引发子进程暂停的信号代码,一般会先
用WIFSTOPPED来判断后才使用此宏。
返回值
如果执行成功则返回子进程识别码(PID),如果有错误发生则返回
-1。失败原因存于errno中。
范例
参考wait()。
如果发生中断 wifexited的值是多少
可以获取子进程调传送给exit或用 exit函数参数的低 8位。
1、WEXITSTATUS是返回子进程的退出码,用来判断子进程的退出值。当WIFEXITED(status)这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。
2、WEXITSTATUS(status)取得子进程exit()返回的结束代码,一般会先用WIFEXITED来判断是否正常结束才能使用此宏。
好了,文章到此结束,希望可以帮助到大家。