用C语言实现多进程编程,主进程每隔1秒获取当前系统时间写入某文件,子进程打开该文件,读取文件的内容并显示在屏幕上。
时间: 2024-05-03 10:20:07 浏览: 123
C程序实现多进程
4星 · 用户满意度95%
好的,这是一个编程问题。我可以给予解答。
实现多进程编程可以使用 fork() 函数来创建子进程。主进程可以使用 time() 函数获取当前系统时间,然后通过写入文件的方式保存时间信息。子进程可以通过文件操作函数(如 fopen() 和 fgets())读取文件内容,并将其显示在屏幕上。下面是一个简单的 C 语言多进程编程示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <time.h>
int main()
{
pid_t pid;
FILE *time_file;
char buffer[100];
// 创建子进程
pid = fork();
if (pid == -1) {
perror("fork");
exit(EXIT_FAILURE);
} else if (pid == 0) {
// 子进程
time_file = fopen("time.txt", "r");
if (time_file == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
}
fgets(buffer, sizeof(buffer), time_file);
printf("The current time is %s", buffer);
fclose(time_file);
} else {
// 主进程
while (1) {
time_t cur_time;
struct tm *time_info;
char time_str[100];
// 获取当前系统时间
cur_time = time(NULL);
time_info = localtime(&cur_time);
strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", time_info);
// 写入文件
time_file = fopen("time.txt", "w");
if (time_file == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
}
fputs(time_str, time_file);
fclose(time_file);
// 等待1秒
sleep(1);
}
// 等待子进程结束
wait(NULL);
}
return 0;
}
```
这个程序可以在 Linux 或 Unix 系统中编译和运行。其中,主进程不断获取当前系统时间并写入文件,子进程则读取该文件的内容并显示在屏幕上。
阅读全文