如何在Linux中创建进程?
加载到内存中并执行的程序称为进程。简单来说,一个进程就是一个正在执行的程序。
让我们检查一下如何在Linux中创建进程
可以通过fork()
系统调用创建一个新进程。新进程包含原始进程的地址空间的副本。fork()
从现有流程创建新流程。现有进程称为父进程,而新创建的进程称为子进程。该函数从父进程中调用。父进程和子进程都在后面的指令处继续执行,对于新进程,fork()
的返回码fork()
为零,而子进程的标识符返回给父进程。
Fork()系统调用位于<sys / types.h>库中。
系统调用getpid()
返回当前进程getppid()
的进程ID,并返回当前进程的父进程的进程ID。
示例
让我们以如何使用fork()
系统调用创建子进程为例。
#include <unistd.h>#include <sys/types.h>
#include <stdio.h>
int main( ){
pid_t child_pid;
child_pid = fork (); // Create a new child process;
if (child_pid < 0) {
printf("fork failed");
return 1;
} else if (child_pid == 0) {
printf ("child process successfully created!\n");
printf ("child_PID = %d,parent_PID = %d\n",
getpid(), getppid( ) );
} else {
wait(NULL);
printf ("parent process successfully created!\n");
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中创建进程? 的全部内容, 来源链接: utcz.com/z/322333.html