为什么这个退出函数在C的末尾添加两个零?
发布时间:2020-12-16 09:22:18 所属栏目:百科 来源:网络整理
导读:嘿所以我在C中为大学做了一个程序,孩子应该以十六进制0xAA退出但是它最后还加了两个零?为什么这样做?我在监督什么吗? pid_t cpid;int status;cpid = fork();if (cpid==-1){ return -1;}else if(cpid==0){ pid_t pid_child = getpid(); pid_t ppid_child =
嘿所以我在C中为大学做了一个程序,孩子应该以十六进制0xAA退出但是它最后还加了两个零?为什么这样做?我在监督什么吗?
pid_t cpid; int status; cpid = fork(); if (cpid==-1){ return -1; } else if(cpid==0){ pid_t pid_child = getpid(); pid_t ppid_child = getppid(); printf("ChildProcessID from Child: %dn",pid_child); printf("ParentProcessID from Child: %dn",ppid_child); exit(0xAA); } else{ printf("ChildProcessID: %dn",cpid); wait(&status); printf("Exit Status Child: %#Xn",status); } 在它应该输出的最后 Exit Status Child: 0XAA 它推出了 Exit Status Child: 0XAA00 如果有任何错误格式或遗忘任何内容,我很抱歉.这是我在这里发表的第一篇文章. 解决方法
当wait返回时,给定参数除了退出代码之外还包含其他信息.它还会告诉您进程是否正常终止.
您可以使用宏来提取相关部分: wait(&status); if (WIFEXITED(status)) { printf("Exit Status Child: %#Xn",WEXITSTATUS(status)); } else if (WIFSIGNALED(status)) { printf("Child exited abnormally via signal %dn",WTERMSIG(status)); } else { printf("Something else happenedn"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |