C/C++ getpid 取得行程 pid

本篇介紹 C/C++ 在 Linux 下取得行程的方法,在 Linux 下要取得 pid 的話要使用 getpid 這個函式,以下為 Linux getpid 函式用法與範例。

getpid 函式適用 Linux / macOS,但 Windows 不適用


要使用 Linux getpid 取得行程 pid 的話,需要引入的標頭檔: <unistd.h>
另外 pid_t 這個變數類型定義會需要引入 <sys/types.h> 標頭檔

Linux getpid 使用範例

以下為 getpid 的使用範例,要用 pid_t 這個變數類型來儲存 getpid 的回傳結果,
pid_t 這個變數類型在 x64 上定義為 int,
之後用 printf 將這個 pid 印出來,這個 pid 就是這個小程式的 process id 了,

cpp-getpid.cpp
1
2
3
4
5
6
7
8
9
10
11
// g++ cpp-getpid.cpp -o a.out
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main() {
pid_t pid = getpid();
printf("pid: %d\n", pid);

return 0;
}

輸出:

1
pid: 11564

補充

如果你只是單純的印出 pid 的話,可以不用引用<sys/types.h> 標頭檔

1
printf("pid: %d\n", getpid());

其他參考
getpid(2) - Linux manual page
https://man7.org/linux/man-pages/man2/getpid.2.html
C语言getpid()函数:获取进程识别码_C语言中文网
http://c.biancheng.net/cpp/html/280.html
How to get the running process’ pid in C / C++? - SysTutorials
https://www.systutorials.com/how-to-get-the-running-process-pid-in-c-c/
Code Snippets for .NET and Linux: Get process id by name in Linux using C++
http://proswdev.blogspot.com/2012/02/get-process-id-by-name-in-linux-using-c.html

其它相關文章推薦
C/C++ 新手入門教學懶人包
C++ virtual 的兩種用法
C/C++ 字串反轉 reverse
C/C++ call by value傳值, call by pointer傳址, call by reference傳參考 的差別
C++ 類別樣板 class template
std::sort 用法與範例
std::find 用法與範例
std::queue 用法與範例
std::map 用法與範例