编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符 串“parent:”和自己的标识数,子进程则重复显示字符串“child:”和自己的标识数。
时间: 2024-10-08 19:10:45 浏览: 75
在Unix/Linux环境中,可以使用C语言编写这个程序,利用fork()
函数创建子进程。以下是程序的一个简单示例:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#define MAX_CHILDREN 2
int main(int argc, char *argv[]) {
int i;
pid_t pid;
for (i = 0; i < MAX_CHILDREN; ++i) {
// 创建子进程
if ((pid = fork()) == 0) { // 子进程
printf("child: %d\n", i);
while (1); // 子进程无限循环打印"child:"
} else if (pid > 0) { // 父进程
wait(NULL); // 等待子进程结束
printf("parent: %d\n", i); // 父进程显示"parent:"和子进程ID
} else {
perror("fork failed");
return -1;
}
}
return 0;
}
在这个程序中,fork()
函数会返回0给子进程,大于0给父进程。子进程会直接进入无限循环打印"child:", 而父进程会在每次循环后等待一个子进程结束后再继续打印"parent:"和当前的子进程ID。
运行此程序,你会看到父进程和子进程交替显示各自的信息。