【发布时间】:2021-08-08 16:24:26
【问题描述】:
我在看一个教学示例,我看到我的教授使用这种语法来打印子进程的退出值:
wait(&value);
printf("last two bytes of value are %d - %d\n",(value>>8)&255,value&255);
“value”变量定义为一个int,wait()被父进程用来等待通过“fork()”生成的子进程。子进程可以通过信号终止,也可以在固定时间后自行终止。 据我了解,由于变量“value”是一个 int,它有 4 个字节,但“exit(int)”的退出代码只写在四个字节之一中。如果进程不是由 exit() 终止,而是由信号终止,则在这四个字节中的另一个中,我会收到该信号的代码。 所以我猜我有“(value>>8)”的事实是由于这种字节的使用,但我不明白为什么我使用带有“&255”的语法来打印这些值。
【问题讨论】: