[Linux/C++] 取得目前執行程式的路徑
在 Linux 上執行一個 C/C++ 的程式,要如何在程式裡面得知執行的路徑呢?
在 stackoverflow: how to find the location of the executable in C 這邊找到答案,
用 readlink(“/proc/self/exe”, buf, bufsize) 就行了~
下面是一個簡單的範例程式:
#include <stdio.h> #include <unistd.h> int main(int argc, char* argv[]) { char buf[1024] = {}; readlink("/proc/self/exe", buf, sizeof(buf)); printf("Program binary path is: %s\n", buf); return 0; }
編譯後,把程式放在 /tmp 目錄下,隨便從另外一個目錄執行它,
都可以得到相同的結果:
Program binary path is: /tmp/testreadlink
(本頁面已被瀏覽過 1,633 次)