linux创建两个进程,实现两个进程轮流数数的功能
时间: 2024-03-07 09:48:59 浏览: 17
好的,我可以为您解答。以下是一个简单的示例程序,其中创建了两个进程,它们交替打印数字,从而实现了轮流数数的功能:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
int num = 0;
pid_t pid;
pid = fork(); // 创建第一个子进程
if (pid < 0) {
printf("Fork failed.\n");
return 1;
} else if (pid == 0) { // 第一个子进程
while (num < 100) {
printf("Child process 1: %d\n", num);
num += 2;
sleep(1);
}
} else { // 父进程
pid = fork(); // 创建第二个子进程
if (pid < 0) {
printf("Fork failed.\n");
return 1;
} else if (pid == 0) { // 第二个子进程
while (num < 100) {
printf("Child process 2: %d\n", num + 1);
num += 2;
sleep(1);
}
} else { // 父进程等待子进程结束
wait(NULL);
wait(NULL);
}
}
return 0;
}
```
以上程序创建了一个父进程和两个子进程,其中一个子进程打印偶数,另一个子进程打印奇数。每个子进程都使用一个循环来打印数字,并使用 `sleep` 函数来暂停一秒钟,以便观察交替打印的效果。父进程等待两个子进程结束后退出。