为什么这个退出函数在C的末尾添加两个零?

为什么这个退出函数在C的末尾添加两个零?,第1张

概述嘿所以我在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_chil 嘿所以我在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: %d\n",pID_child);    printf("ParentProcessID from Child: %d\n",ppID_child);    exit(0xAA);}else{    printf("ChildProcessID: %d\n",cpID);    wait(&status);    printf("Exit Status Child: %#X\n",status);}

在它应该输出的最后

Exit Status Child: 0XAA

它推出了

Exit Status Child: 0XAA00

如果有任何错误格式或遗忘任何内容,我很抱歉.这是我在这里发表的第一篇文章.
提前致谢.

解决方法 当wait返回时,给定参数除了退出代码之外还包含其他信息.它还会告诉您进程是否正常终止.

您可以使用宏来提取相关部分:

wait(&status);if (WIFEXITED(status)) {    printf("Exit Status Child: %#X\n",WEXITSTATUS(status));} else if (WIFSIGNALED(status)) {    printf("Child exited abnormally via signal %d\n",WTERMSIG(status));} else {    printf("Something else happened\n");}
总结

以上是内存溢出为你收集整理的为什么这个退出函数在C的末尾添加两个零?全部内容,希望文章能够帮你解决为什么这个退出函数在C的末尾添加两个零?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1212160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存