//judge_wait.c
#include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc,char* argv[]) { pid_t pid,w_pid; int sta; pid = fork(); if(pid == -1){ perror("fork error"); exit(1); }else if(pid == 0){ printf("I am child.\n"); execlp("./test","test",NULL); sleep(5); exit(73); }else{ w_pid = wait(&sta); if(w_pid == -1){ perror("wait error"); exit(1); } // 进程正常退出,获取进程正常退出状态 if(WIFEXITED(sta) !=0){ printf("%d \n",WEXITSTATUS(sta)); } //进程异常终止,获取使进程异常终止的信号 if(WIFSIGNALED(sta)){ printf("%d \n",WTERMSIG(sta)); } } return 0; }
/* 测试程序异常退出
tesst.c */ main(int argc,char* argv[]) { char *ptr = "jasgfhjgalklsjf"; //ptr[1] = "e"; int a =5 / 0; return 0; }
判断进程是否正常退出
最新推荐文章于 2024-08-06 10:28:38 发布