创建两个进程,让子进程读取一个文件,父进程等待子进程读取 完文件后继续执行,实现进程协同工作。 进程协同工作就是协调好两个进程,使之安排好先后次序并以此 执行,可以用等待函数来实现这一点。当需要等待子进程运行结束 时,可在父进程中调用等待函数,用c语言实现
时间: 2023-06-11 17:08:42 浏览: 133
下面是一个使用C语言实现进程协同工作的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid;
int status;
pid = fork();
if (pid < 0) {
perror("Fork failed");
exit(1);
} else if (pid == 0) {
// 子进程读取文件
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
perror("Failed to open file");
exit(1);
}
char buffer[1024];
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
exit(0);
} else {
// 父进程等待子进程读取完文件
waitpid(pid, &status, 0);
printf("Child process finished reading the file.\n");
exit(0);
}
}
```
在上面的例子中,首先创建了一个子进程,然后在子进程中打开了一个文件并读取其中的内容。在父进程中,使用`waitpid`函数等待子进程执行完毕。当子进程执行完毕后,父进程才会继续执行。
阅读全文