【发布时间】:2017-02-20 21:55:19
【问题描述】:
我正在尝试获取该程序的输出,但根据我运行它的环境,它似乎有所不同。
是 ABCADEABC 或 ABCABCADE 或 ABCADE 或 EABCDBC 或 EABCCD?
我相信我应该得到 ABCABCADE,但我想知道为什么当它们是相同的代码时我会得到不同的结果?
我应该得到什么?
#include <stdio.h>
#include <unistd.h>
#include <wait.h>
int main(void) {
int pid;
pid= fork();
if (pid == 0) {
fprintf(stdout, "A\n");
pid= fork();
if (pid==0) {
fprintf(stdout, "B\n");
pid=fork();
fprintf(stdout, "C\n");
}
else {
wait(NULL);
fprintf(stdout, "D\n");
}
}
else {
fprintf(stdout, "E\n");
wait(NULL);
}
// your code goes here
return(0);
}
【问题讨论】:
-
请将代码发布为可以复制/粘贴编译和运行的文本。发布显示问题的Minimal, Complete, and Verifiable example。清楚输入、预期输出和实际输出。我们只有一个图片链接和一些 ABC 华夫饼。还要说明它工作/不工作的环境。
-
以文字而非图片的形式发布代码。剪切并粘贴问题中的代码并通过选择它并键入 Alt-K 来缩进它
-
希望修复它