【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函數。

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM