编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符 串“parent:”和自己的标识数,子进程则重复显示字符串“child:”和自己的标识数。
时间: 2024-10-08 20:12:01 浏览: 52
进程的创建编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,
5星 · 资源好评率100%
好的,这是一个简单的C语言示例,演示如何使用`fork()`函数创建两个子进程,并让父进程和子进程各自显示指定的信息:
```c
#include <stdio.h>
#include <unistd.h>
#define MAX_CHILDREN 2
int main() {
pid_t childPID;
char msg[50];
for (int i = 0; i < MAX_CHILDREN; i++) {
// Fork a new process
if ((childPID = fork()) == 0) { // Child process
sprintf(msg, "child: %d", i);
printf("%s\n", msg);
break; // Only one child is created
} else if (childPID > 0) { // Parent process
sprintf(msg, "parent: %d", i);
printf("%s\n", msg);
// Wait for the child to finish
wait(NULL);
} else { // Fork failed
perror("Fork failed");
return -1;
}
}
return 0;
}
```
在这个程序中,父进程循环两次,每次调用`fork()`创建一个新的子进程。第一个子进程会立即结束,所以只创建一个子进程。如果`fork()`成功,子进程将打印"child: 子进程ID",而父进程则打印"parent: 子进程ID"。通过调用`wait()`,父进程可以等待子进程结束。
运行这个程序,你会看到类似这样的输出:
```
parent: 0
child: 0
parent: 1
```
阅读全文