執行的應用程式的當前工作目錄和所在的目錄的區別
阿新 • • 發佈:2019-01-29
週末和一個做linux平臺開發的朋友討論了下如何獲取當前執行程式所在的目錄的問題。首先我在這裡簡單的介紹下執行的應用程式的當前工作目錄和執行應用程式所在的目錄的區別?
當前工作目錄 (Current Working Directory)
一般來說,每個程序都有一個與之相關聯的分級檔案系統(hierarchical file system)下的目錄,稱之為該程序的當前工作目錄。如果程式剛進入main入口處的時候,當前工作目錄其實就是程式啟動的目錄,但是當前工作目錄是可以通過程式進行設定或者隨著OpenFileDialog、SaveFileDialog等物件所確定的目錄而改變。所以使用的時候要小心。
應用程式所在的目錄
該程序從中啟動的目錄,即程式檔案自身所在的目錄。
所以,當前工作目錄和程式所在的目錄可以不同。
Windows獲取程式全路徑的介面是:GetModuleFileName
C Run-Time 庫獲取程式全路徑介面是:_get_tpgmptr
#include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { char a[MAX_PATH] = {0}; WCHAR *p = NULL; _get_tpgmptr(&p); wcout << p << endl; }