【发布时间】:2021-07-03 06:09:06
【问题描述】:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
struct mystruct {
char string[3];
char pid
};
int main(int argc, char** argv) {
struct mystruct info;
info.pid = fork();
strcpy(info.string, "Son");
if (info.pid == 0)
printf("%s", info.string);
else
printf("Father");
return 0;
}
此代码打印
Son
Son
我想知道为什么。
【问题讨论】:
-
如果您正在做一些奇怪的事情(将某个较大类型的值分配给 char),开始调试的一个好地方是发现奇怪的事情是否是意外行为的原因。打印出 pid(作为 pid_t)及其截断时的值是我首先尝试的。