WIFEXITED为什么会在运行过程中返回True?

前端之家收集整理的这篇文章主要介绍了WIFEXITED为什么会在运行过程中返回True?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我等待作为子进程的特定运行进程组时,WIFEXITED返回true表示该进程已退出?这是它的工作方式吗?似乎有一些我不理解的东西….
if ( waitpid(-pgid,&pstatus,WUNTRACED|WNOHANG ) == -1)
    perror("Wait error");

if ( WIFEXITED(pstatus) ) {
    strncpy(buf,"Exited",buf_size);
    return 0;

解决方法

正如您指定的WNOHANG我认为waitpid返回0并且pstatus具有之前的值,因此WIFEXITED不使用更新的数据.

if WNOHANG was specified and one or more child(ren)
specified by pid exist,but have not yet changed state,
then 0 is returned.

猜你在找的C&C++相关文章