[Linux/C++] 取得目前執行程式的路徑

[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

 

 

 

(本頁面已被瀏覽過 764 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料