我必须像这样重现一个过程家庭:父亲->孩子->孙子。 我不明白为什么孙子代码永远不会执行。 我的代码方案是这样的:
int main() {
int fatherProcess, p1, p2;
p1 = fork();
if(p1 <0) {
perorr("Failed to create P1\n");
} else if(p1 == 0) {
//child code
p2 = fork();
if(p2 < 0) {
perorr("Failed to create P2\n");
} else if(p2 == 0) {
//grandson code
pritnf("Hello I'm the GRANDSON\n");
} else {
//child code
pritnf("Hello I'm the CHILD\n");
}
} else {
//father code
pritnf("Hello I'm the father\n");
}
return 0;
}
我得到的邮票是: -你好,我是孙子 -你好,我是父亲
答案 0 :(得分:1)
您犯了两个拼写错误。我已经修复它,您可以尝试下面的代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
int main() {
int fatherProcess, p1, p2;
p1 = fork();
if(p1 <0) {
perror("Failed to create P1\n");
} else if(p1 == 0) {
//child code
p2 = fork();
if(p2 < 0) {
perror("Failed to create P2\n");
} else if(p2 == 0) {
//grandson code
printf("Hello I'm the GRANDSON\n");
} else {
//child code
printf("Hello I'm the CHILD\n");
}
} else {
//father code
printf("Hello I'm the father\n");
}
return 0;
}
您的代码:
perorr --> perror
pritnf --> printf