|
楼主 |
发表于 2005-5-5 11:16:29
|
显示全部楼层
2. 在子进程中执行 abort();或除0等。
3. 在父进程中 kill(pid,SIGSTOP)。
多谢sagaeon哥的指教,我已经把程序改为
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
pid_t pid=fork();
if(pid==0)
{
//exit(5);
int x=3/0;
}
else if(pid>0)
{
int status;
int option=WUNTRACED;
waitpid(pid,&status,option);
if(WIFEXITED(status))
printf("return(exit) code is %d\n",WEXITSTATUS(status));
if(WIFSIGNALED(status))
printf("term signal's ID is %d\n",WTERMSIG(status));
if(WIFSTOPPED)//you must use WUNTRACED as a param in waitpid
printf("stop sigal's id is %d\n",WSTOPSIG(status));
}
}
程序运行结果return(exit) code is 8,
这里8应该是除0错误的终止代码吧,但是如果我想得到这个错误号码的一个描叙(因为通常我们不知道8到底代表什么),该怎么编程呢,谢谢, |
|