3.进行进程创建程序编码,要求使用fork()函数创建进程,父子进程中分别使用循环方式间隔1秒5次输出“I am child,pid = ”或“I am parent,pid =”。
时间: 2024-11-05 16:33:29 浏览: 22
在Linux系统下,可以使用`fork()`函数创建一个新的进程。这个函数会复制当前进程的所有信息,包括代码、数据段和堆栈,并返回两个PID值:一个是父进程的,另一个是新创建子进程的。下面是一个简单的C语言示例,演示如何按照你所描述的要求实现父子进程间交替输出"I am child,pid = "和"I am parent,pid = ":
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
pid_t pid;
// 父进程部分
if (fork()) { // 如果当前进程是父进程
for (int i = 0; i < 5; i++) {
printf("I am parent, pid = %d\n", getpid());
sleep(1); // 等待1秒
}
return 0;
}
// 子进程部分
else { // 如果当前进程是子进程
for (int i = 0; i < 5; i++) {
printf("I am child, pid = %d\n", getpid());
sleep(1);
}
}
return 0;
}
```
在这个程序中,`fork()`函数会在父进程和子进程之间进行,每个进程都会有一个独立的执行路径。父进程和子进程分别执行各自的循环,每循环一次就输出一次信息并暂停1秒。
阅读全文