首页 > 代码库 > 进程控制(八)---子进程终止状态相关的宏

进程控制(八)---子进程终止状态相关的宏

  前面笔记中提到了无论子进程是 正常终止 还是 异常终止,父进程都可以通过 wait 函数或者waitpid 函数来获取到其 终止状态。但是 正常终止 和 异常终止 父进程所获得的信息是不同的,正常终止时父进程收到的是 子进程 中exit的参数,而异常终止 时父进程收到的是 导致子进程异常终止的 信号 编号值。
 
  正常终止返回给父进程的状态值 和 异常终止时传递给父进程的信号值 是存放在 wait 或者 waitpid 函数的参数 status 所指向内存的不同位上的。要是父进程想知道 子进程是正常终止 还是 异常终止的,就可以通过判断 对应位上是否有值来确定。
 
Linux系统提供了几种宏来实现:
  • WIFEXITED(status):测试是否是正常退出
    • WEXITSTATUS(status):获取子进程的终止状态值
  • WIFSIGNALED(status):测试是否异常退出
    • WTERMSIG(status):获取导致子进程异常终止的信号编号值

进程控制(八)---子进程终止状态相关的宏