《Linux从练气到飞升》No.17 进程创建
在Linux系统中,可以使用fork()
函数来创建一个新的进程。这个函数会创建一个与父进程几乎完全相同的子进程。子进程会从父进程继承大部分环境,但是有自己的进程标识符(PID)。
下面是一个简单的示例,展示了如何使用fork()
函数:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main() {
pid_t pid = fork();
if (pid == -1) {
// 创建失败
perror("fork failed");
return 1;
} else if (pid == 0) {
// 子进程中
printf("I am the child process. My PID is %d.\n", getpid());
} else {
// 父进程中
printf("I am the parent process. My PID is %d. My child's PID is %d.\n", getpid(), pid);
}
return 0;
}
在这个例子中,fork()
被调用一次,但是控制流会分叉到两个分开的流程。在父进程中,fork()
会返回子进程的PID,而在子进程中,fork()
会返回0。如果创建失败,fork()
会返回-1。在每个流程中,我们都用getpid()
来获取当前进程的PID。
评论已关闭