这个代码存在问题。具体问题如下:

1.第一行的main函数缺少返回类型int。

2.while循环中的条件判断应该是(p1=fork()) == -1,而不是(p1=fork()) = = -1。

3.在第一个子进程中,应该输出字符'a',而不是字符'b'。

4.在第二个子进程中,应该输出字符'c',而不是字符'b'。

修改后的代码如下:

#include <stdio.h> #include <stdlib.h> #include <unistd.h>

int main() { int p1, p2; while ((p1 = fork()) == -1); if (p1 == 0) { putchar('a'); } else { while ((p2 = fork()) == -1); if (p2 == 0) { putchar('c'); } else { putchar('b'); } } return 0;

#include stdiohmain int p1p2;whilep1=fork = = -1; 创建子进程p1if p1= =0 putcharb; else whilep2=fork = = -1; 创建子进程p2ifp2= =0 putcharc; else putchara; 这个代码有问题吗

原文地址: http://www.cveoy.top/t/topic/djsi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录