1. 程式人生 > 其它 >【Linux作業系統】C語言獲取程序ID並列印程序ID

【Linux作業系統】C語言獲取程序ID並列印程序ID

  因為專案需要根據業務情況調整程序的排程策略和程序優先順序,所以需要先獲取程序的ID。  

  在Linux作業系統中,如果要使用C語言獲取程序ID,可以利用兩個介面getppid()和getpid()來獲取程序ID,他們都是unistd.h庫中定義的內建函式。

一.getpid()函式

  系統中的任何程序都有唯一的ID標識它們,建立它們的時候,它們也都會被分配唯一的ID。getpid()函式返回的是呼叫程序(即呼叫這個函式的程序)的程序ID。

  基本的語法為:pid_t  getpid(void);(pid_t是程序ID的型別,它是無符號整數型別的資料型別)

  返回值:返回值的型別為int;返回值即為當前程序的程序ID;它永遠不會丟擲任何錯誤,所以它總是成功的。

二.getppid()函式

  getppid()函式用來返回呼叫程序的父程序ID。如果呼叫程序是用fork()函式建立的,並且在getppid()函式呼叫時其父程序還存在著,那麼這個函式就會返回父程序的程序ID,否則就會返回一個值1,這個值是init程序的程序ID。

  基本語法:pid_t  getppid(void);

  返回值:返回值的型別為Int;返回值為當前程序的父程序ID;它永遠不會丟擲任何錯誤,因此總是成功的。

三.程式碼說明

  下面通過一段簡單的程式碼說明一下Linux系統中使用C語言如何獲取呼叫程序ID和父程序。

  

        輸出結果如下:

       

  說明:標頭檔案

  1. stdio:用於printf()函式的標頭檔案;

  2. sys/types.h:用於pid_t型別,也就是用於儲存程序ID的變數的資料型別;

  3. unistd.h:用於getpid和getppid函式。