c - 如何使用 Fork() 只创建两个子进程,它们都有下两个子进程?
问题描述
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main() {
printf("Parent:my pid: %d my ppid: %d\n",getpid(),getppid() );
pid_t pid0 = fork();
if (pid0 == 0) {
//child 1
printf("child 1:my pid: %d my ppid: %d\n",getpid(),getppid() );
pid_t pid2 = fork();
if (pid2 == 0) {
//child 11
printf("child 11:my pid: %d my ppid: %d\n",getpid(),getppid() );
}else if (pid2 > 0) {
//child 1
pid_t pid3 = fork();
if (pid3 == 0) {
//child 12
printf("child 12:my pid: %d my ppid: %d\n",getpid(),getppid() );
}else if (pid3 > 0) {
//Child 1
}else{
fprintf(stderr, "Fork doesn't work\n" );
return -1;
}
}else{
fprintf(stderr, "Fork doesn't work\n" );
return -1;
}
}else if (pid0 > 0) {
//patent
pid_t pid1 = fork();
if (pid1 == 0) {
//child 2
printf("child 2:my pid: %d my ppid: %d\n",getpid(), getppid() );
pid_t pid4 = fork();
if (pid4 == 0) {
//child 21
printf("child 21 :my pid: %d my ppid: %d\n",getpid(),getppid() );
}else if (pid4 > 0) {
//child 2
pid_t pid5 = fork();
if (pid5 == 0) {
//child 22
printf("child 22 :my pid: %d my ppid: %d\n",getpid(),getppid() );
}else if (pid5 > 0) {
//child 2
}else{
fprintf(stderr, "Fork doesn't work\n" );
return -1;
}
}else{
fprintf(stderr, "Fork doesn't work\n" );
return -1;
}
}else if (pid1 > 0) {
//parent
}else{
fprintf(stderr, "Fork doesn't work\n" );
return -1;
}
}else {
fprintf(stderr, "Fork doesn't work\n" );
return -1;
}
return 0;
}
有没有办法从父进程中只创建两个子进程,而父进程都有下两个子进程?我尝试过这样的事情,但 PPID 与父母 PID 不正确。 这是一张照片 .................................................. ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................
解决方案
推荐阅读
- react-native - 使用 React Navigation 为每个底部选项卡添加后退按钮
- python - numpy NPV 和 excel NPV 之间有区别吗?
- branch.io - 如何使用 Branch.io 将链接查询参数传递给深度链接
- javascript - 如何显示复选框值(选中或未选中)
- flutter - Flutter HMAC SHA1 编码
- javascript - 反应状态钩子问题
- c++ - 有没有办法找到特征矩阵系数的中值?
- r - AWS EC2 上的 getSymbols 非常慢
- java - 读取项目目录以获取 java web 应用程序中的属性文件
- java - logback,设置要保存历史的文件总数