编写程序,用系统调用fork0创建两子进程。父进程显示10次字符串“father”,子进程1显示10次字符串“son”,子进程2显示10次字符串“daughter”。要求用C语言写出完整的程序。
时间: 2023-06-01 19:05:31 浏览: 102
好的,以下是程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
pid_t pid1, pid2;
int i;
// 创建第一个子进程
pid1 = fork();
if (pid1 < 0) { // 创建失败
fprintf(stderr, "创建子进程1失败\n");
exit(-1);
} else if (pid1 == 0) { // 在子进程1中
for (i = 0; i < 10; i++) {
printf("son\n");
}
exit(0);
}
// 创建第二个子进程
pid2 = fork();
if (pid2 < 0) { // 创建失败
fprintf(stderr, "创建子进程2失败\n");
exit(-1);
} else if (pid2 == 0) { // 在子进程2中
for (i = 0; i < 10; i++) {
printf("daughter\n");
}
exit(0);
}
// 在父进程中
for (i = 0; i < 10; i++) {
printf("father\n");
}
return 0;
}
```
这个程序中,我们使用了 `pid_t` 类型表示进程 PID,使用了 `fork()` 系统调用来创建子进程,并且在不同的子进程中输出不同的字符串,最后在父进程中输出另外一个字符串。
阅读全文