在main父进程创建两个子进程, ,两个子进程不编写自己的代码,编译运行查看效果。 int main( ) { int a=3; printf(“a=%d”,a); 创建两个子进程 }
时间: 2024-06-13 18:03:44 浏览: 50
在main父进程创建两个子进程,两个子进程不编写自己的代码,编译运行查看效果。可以使用fork()函数创建子进程,然后在子进程中使用exec()函数执行其他程序或者使用sleep()函数等待一段时间后退出。在父进程中使用wait()函数等待子进程结束并回收资源。下面是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
int a = 3;
printf("a=%d\n", a);
pid_t pid1, pid2;
pid1 = fork();
if (pid1 == 0) { // 子进程1
printf("Child process 1: pid=%d\n", getpid());
sleep(5);
exit(0);
} else if (pid1 > 0) { // 父进程
pid2 = fork();
if (pid2 == 0) { // 子进程2
printf("Child process 2: pid=%d\n", getpid());
sleep(5);
exit(0);
} else if (pid2 > 0) { // 父进程
waitpid(pid1, NULL, 0);
waitpid(pid2, NULL, 0);
printf("Parent process: pid=%d\n", getpid());
} else { // fork()失败
perror("fork error");
exit(1);
}
} else { // fork()失败
perror("fork error");
exit(1);
}
return 0;
}
```
该程序首先输出a的值,然后创建两个子进程,每个子进程输出自己的pid并等待5秒后退出,父进程等待两个子进程结束后输出自己的pid。可以编译运行该程序,观察输出结果。
阅读全文