用C语言编写10个进程的输入输出。进程包含进程名、提交时间、执行时间。
时间: 2024-09-19 19:04:09 浏览: 30
在C语言中,我们可以使用`fork()`系统调用来创建新进程,并通过标准I/O(如`printf()`和`scanf()`)来进行输入输出操作。下面是一个简单的示例,展示了如何创建10个进程,每个进程都有自己的名字、提交时间和执行时间:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#define PROCESSES 10
// 子进程函数模板
void child_process(char *process_name) {
// 获取当前时间作为提交时间
time_t submit_time = time(NULL);
printf("Process Name: %s, Submit Time: %ld\n", process_name, (long)submit_time);
// 模拟随机的执行时间
int execution_time = rand() % 5 + 1; // 随机1到5秒
sleep(execution_time); // 程序暂停一段时间表示执行
// 输出执行时间
time_t end_time = time(NULL);
printf("Process Name: %s, Execution Time: %ld seconds\n", process_name, (long)(end_time - submit_time));
}
int main() {
for (int i = 0; i < PROCESSES; i++) {
char process_name[10];
sprintf(process_name, "Process%d", i + 1); // 给进程命名
pid_t pid = fork(); // 创建新的进程
if (pid == 0) { // 如果是子进程
child_process(process_name);
exit(0); // 结束子进程
} else if (pid > 0) { // 如果是父进程
printf("Parent Process: Created child process with name %s.\n", process_name);
} else { // fork失败,错误处理
perror("Fork failed");
}
}
return 0;
}
```
在这个例子中,我们首先在`main()`函数中循环创建了10个进程,每个进程都有自己的名称,提交时间和随机的执行时间。然后,子进程会打印出其信息并结束。
阅读全文