如何在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

回到顶部