如何在 Linux 中创建进程?
operating systemlinuxprogramming scripts更新于 2025/4/28 15:22:17
加载到内存中并执行的程序称为进程。简单来说,进程就是正在执行的程序。
让我们来看看如何在 Linux 中创建进程
可以通过 fork() 系统调用创建新进程。新进程由原始进程地址空间的副本组成。fork() 从现有进程创建新进程。现有进程称为父进程,新创建的进程称为子进程。该函数从父进程调用。父进程和子进程都在 fork() 之后的指令处继续执行,对于新进程,fork() 的返回码为零,而子进程的进程标识符返回给父进程。
Fork() 系统调用位于 <sys/types.h>库。
系统调用 getpid() 返回当前进程的进程 ID,getppid() 返回当前进程的父进程的进程 ID。
示例
让我们举一个例子来说明如何使用 fork() 系统调用创建子进程。
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
int main( ){
pid_t child_pid;
child_pid = fork (); // 创建一个新的子进程;
if (child_pid < 0) {
printf("fork failed");
return 1;
} else if (child_pid == 0) {
printf ("child process successfully created!
");
printf ("child_PID = %d,parent_PID = %d
",
getpid(), getppid( ) );
} else {
wait(NULL);
printf ("parent process successfully created!
");
printf ("child_PID = %d, parent_PID = %d", getpid( ), getppid( ) );
}
return 0;
}
输出
child process successfully created! child_PID = 31497, parent_PID = 31496 parent process successfully created! child_PID = 31496, parent_PID = 31491
此处,子进程中的 getppid() 返回的值与父进程中的 getpid() 相同。
pid_t 是一种表示进程 ID 的数据类型。它是为了进程标识而创建的。每个进程都有一个唯一的 ID 号。接下来,我们调用系统调用 fork(),它将从调用进程创建一个新进程。父进程是调用函数,新进程是子进程。如果进程创建成功,系统调用 fork() 将返回零或正值。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

