1. 取得當前工作目錄(相當於windows下的getcurrentdirectory):
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "unistd.h"
int main()
else
return 0;
}2. 取得實際檔案目錄(相當於windows下的getmodulefilename())
每個程序在/proc下都有乙個以程序號命名的目錄.
在該目錄下有exe檔案,該檔案是乙個鏈結檔案,它指向的路徑就是該程序的全路徑.
用readlink讀exe檔案返回該程序的全路徑
如果不在意可能導致的安全隱患,可以使用procfs,然後readlink,把當前程序的pid對應的目錄下面的file指向的位置讀出來(注意需要先掛載procfs)
pit_t mypid = getpid();
sprintf(strsrc, "/proc/%d/file", mypid);
readlink(strsrc, strdest, len);//len最好是你的_posix_path_max
所以,如果支援/proc檔案系統,下面的**可以解決你的問題:
#include
#include
#ifndef path_max
#define path_max 1024
#endif
char * get_exe_name()
buf[rslt] = '/0';
return buf;
}int main( void)
如果不支援/proc檔案系統,我也沒什麼好辦法了。
Linux 獲取當前目錄
兩種方法 1.利用getcwd 函式取得當前工作目錄 相當於windows下的getcurrentdirectory 2.取得實際檔案目錄 相當於windows下的getmodulefilename 原理 每個程序在 proc下都有乙個以程序號命名的目錄。在該目錄下有exe檔案,該檔案是乙個鏈結檔案...
獲取當前目錄
tchar exefullpath max path getmodulefilename getmodulehandle null exefullpath,max path tcsrchr exefullpath,t 1 0 這是一段獲得程式當前目錄的一段 這段 很簡單,唯一有點難度的就是最後一句 ...
linux下獲取程式當前目錄絕對路徑
文章出自 1 shell版 1 2 獲取當前指令碼所在絕對路徑 cur dir cd dirname 0 pwd 2 c語言版 方法一 用realpath函式。這種方法用於開機啟動程式獲取自身目錄會出錯。1 2 3 4 5 6 7 8 9 charcurrent absolute path max ...