乌班图fork()父进程和子进程创建
时间: 2023-09-21 18:10:49 浏览: 171
父进程创建子进程
5星 · 资源好评率100%
在Ubuntu中,fork()函数可以用于创建子进程,其语法如下:
```c
#include <unistd.h>
pid_t fork(void);
```
fork()函数会创建一个新的子进程,该子进程是父进程的副本。在父进程中,fork()函数的返回值是子进程的PID(进程ID),在子进程中,fork()函数的返回值为0。如果fork()函数返回值为-1,则表示创建子进程失败。
下面是一个简单的例子,演示如何使用fork()函数创建父进程和子进程:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid;
pid = fork();
if (pid == -1) {
printf("Failed to create child process!\n");
return 1;
}
if (pid == 0) {
printf("This is child process. PID=%d\n", getpid());
} else {
printf("This is parent process. PID=%d, child PID=%d\n", getpid(), pid);
}
return 0;
}
```
在上面的例子中,首先调用fork()函数创建子进程,然后判断fork()函数的返回值。如果返回值为-1,则表示创建子进程失败;如果返回值为0,则表示当前进程是子进程,输出子进程的PID;如果返回值大于0,则表示当前进程是父进程,输出父进程的PID和子进程的PID。
运行上面的程序,可以看到如下输出:
```
This is parent process. PID=1234, child PID=1235
This is child process. PID=1235
```
可以看到,fork()函数成功创建了一个子进程,该子进程和父进程输出的PID不同。
阅读全文