用c语言实现多进程编程,主进程每隔一秒获取当前系统时间写入文件,子进程打开文件,读取文件的内容并显示在屏幕上
时间: 2023-06-16 21:02:43 浏览: 151
下面是一个简单的示例代码,包含了主进程和子进程的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <sys/wait.h>
int main()
{
pid_t pid = fork(); // 创建子进程
if (pid < 0) {
perror("fork error");
exit(1);
} else if (pid == 0) { // 子进程
FILE *fp = fopen("time.txt", "r");
if (fp == NULL) {
perror("open file error");
exit(1);
}
char buf[64];
while (fgets(buf, sizeof(buf), fp) != NULL) {
printf("%s", buf); // 输出文件内容
}
fclose(fp);
} else { // 主进程
while (1) {
FILE *fp = fopen("time.txt", "a"); // 以追加方式打开文件
if (fp == NULL) {
perror("open file error");
exit(1);
}
time_t t;
time(&t);
char *str = ctime(&t);
fprintf(fp, "%s", str); // 将当前系统时间写入文件
fclose(fp);
sleep(1);
}
wait(NULL); // 等待子进程结束
}
return 0;
}
```
这个示例代码中,主进程每秒钟向文件中写入当前系统时间,子进程打开文件并输出文件内容。在实际使用中,你可能需要根据具体需求对代码进行修改。
阅读全文