linux下獲取當前目錄

2021-08-01 22:14:15 字數 879 閱讀 9434

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 ...