使用C语言和两个进程,一个进程A连续打印奇数(1,3,5,7,9.....),另一个进程B连续打印偶数(2,4,6,8,......)
时间: 2023-09-26 17:06:50 浏览: 82
自己写操作系统--两个进程分别输出A和B
你可以使用C语言的进程相关函数来创建两个进程,一个进程A负责打印奇数,另一个进程B负责打印偶数。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
void print_odd_numbers() {
int num = 1;
while (1) {
printf("%d ", num);
fflush(stdout);
num += 2;
sleep(1); // 等待1秒
}
}
void print_even_numbers() {
int num = 2;
while (1) {
printf("%d ", num);
fflush(stdout);
num += 2;
sleep(1); // 等待1秒
}
}
int main() {
// 创建进程A
pid_t pidA = fork();
if (pidA == 0) {
// 子进程A中打印奇数
print_odd_numbers();
}
// 创建进程B
pid_t pidB = fork();
if (pidB == 0) {
// 子进程B中打印偶数
print_even_numbers();
}
// 等待子进程结束
waitpid(pidA, NULL, 0);
waitpid(pidB, NULL, 0);
return 0;
}
```
在上述代码中,我们使用了`fork()`函数来创建两个子进程,子进程A和子进程B。子进程A通过调用`print_odd_numbers()`函数来打印奇数,而子进程B通过调用`print_even_numbers()`函数来打印偶数。两个子进程会同时执行,并且会不断打印出对应的数字。使用`sleep(1)`函数来让程序暂停1秒,以便观察输出结果。最后,父进程通过`waitpid()`函数等待两个子进程结束。
阅读全文