使用fork()创建子进程。
时间: 2023-07-30 09:07:03 浏览: 51
fork() 是一个系统调用,用于创建一个新的进程,新进程是原进程的一个副本。
在使用 fork() 函数创建子进程时,会创建父进程和子进程两个进程。父进程和子进程各自独立运行,并且它们的执行顺序是不确定的。
下面是一个简单的例子,展示如何使用 fork() 函数创建子进程:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid;
pid = fork();
// 如果 pid 等于 0,说明当前进程是子进程
if (pid == 0) {
printf("This is child process, pid is %d\n", getpid());
}
// 如果 pid 大于 0,说明当前进程是父进程
else if (pid > 0) {
printf("This is parent process, pid is %d, child pid is %d\n", getpid(), pid);
}
// 如果 pid 小于 0,说明 fork() 函数出现错误
else {
printf("fork() failed!\n");
return -1;
}
return 0;
}
```
输出结果如下:
```
This is parent process, pid is 12345, child pid is 12346
This is child process, pid is 12346
```
在这个例子中,我们首先调用了 fork() 函数,然后根据返回值来判断当前是父进程还是子进程。如果返回值等于 0,说明当前进程是子进程,如果返回值大于 0,说明当前进程是父进程,返回值是新创建的子进程的进程 ID。如果返回值小于 0,说明 fork() 函数出现错误。