如何在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()返回零或正值。
廣告