在虚拟机终端里进行进程创建程序编码,要求使用fork()函数创建进程,父子进程中分别使用循环方式间隔1秒5次输出“I am child,pid = ”或“I am parent,pid =”。
时间: 2024-10-18 16:23:19 浏览: 40
使用C语言的fork()函数在Linux中创建进程的实例讲解
在虚拟机终端里编写一个简单的C程序,使用`fork()`函数创建一个新进程,然后利用父子进程间的特性来达到你的需求,可以按照下面的方式编写:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <time.h>
int main() {
// 创建新进程
pid_t pid = fork();
if (pid == 0) { // 子进程
for (int i = 0; i < 5; i++) {
printf("I am child, pid = %d\n", getpid());
sleep(1); // 每隔1秒执行一次
}
} else if (pid > 0) { // 父进程
for (int i = 0; i < 5; i++) {
printf("I am parent, pid = %d\n", getpid());
wait(NULL); // 等待子进程完成
sleep(1); // 父进程也间隔1秒执行
}
}
return 0;
}
```
在这个程序中,首先通过`fork()`函数创建了一个子进程。子进程中,有一个for循环每隔1秒打印一次"I am child"以及当前的进程ID。而在父进程中,同样有类似的for循环,但每次迭代都会先打印"I am parent",然后调用`wait(NULL)`等待子进程执行完毕,最后也是间隔1秒再进行下一次循环。
运行这个程序,你会看到交替显示来自父进程和子进程的信息。
阅读全文