编写一个打开文件的程序,调用fork创建一个新进程。
时间: 2024-10-07 10:07:27 浏览: 17
编写一个简单的C语言程序,使用`fork()`函数来创建一个新的进程,并打开一个文件,可以按照以下步骤进行:
```c
#include <stdio.h>
#include <unistd.h>
#define FILE_NAME "example.txt" // 指定你要打开的文件名
int main() {
int pid; // 子进程ID
char *filename = FILE_NAME;
// 调用 fork() 函数
if (fork() == 0) { // 如果这是子进程
printf("I am the child process with PID %d.\n", getpid());
// 在子进程中打开文件
FILE *file = fopen(filename, "r"); // "r"表示读模式
if (file == NULL) {
perror("Failed to open file");
return 1;
}
fclose(file); // 关闭文件,尽管这里我们不需要持久保留文件句柄,但这是一种良好的实践
exit(0); // 子进程结束
} else { // 如果这是父进程
printf("I am the parent process with PID %d.\n", getpid());
wait(NULL); // 等待子进程结束
printf("Child process finished.\n");
}
return 0;
}
```
在这个程序中,`fork()`会复制当前进程,如果返回值为0,那么这个新的进程就是子进程,它会执行`if (fork() == 0)`后面的代码;而原进程将成为父进程。子进程打开指定文件并关闭后,父进程继续运行并等待子进程结束。
阅读全文