如何在Linux中建立程序?


載入到記憶體並執行的程式稱為程序。簡單來說,程序就是正在執行的程式。

讓我們來看看如何在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 (); // Create a new child process;
   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()返回零或正值。

更新於:2020年1月31日

12K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告