第四章 程序(5)程序的當前驅動器和目錄

2021-09-08 15:27:39 字數 951 閱讀 7678

5

、程序的當前驅動器和目錄

當不提供全路徑名時,

windows

的各個函式就會在當前驅動器的當前目錄中查詢檔案和目錄。

系統將在內部保持對程序的當前驅動器和目錄的跟蹤。

由於該資訊是按每個程序來維護的,因此改變當前驅動器或目錄的程序中的執行緒,就可以為該程序中的所有執行緒改變這些資訊。通過呼叫下面兩個函式,執行緒能夠獲得和設定它的程序的當前驅動器和目錄:

dword getcurrentdirectory(dword cchcurdir, ptstr pszcurdir);

bool setcurrentdirectory(pctstr pszcurdir);

程序的當前目錄

系統將對程序的當前驅動器和目錄保持跟蹤,但是它不跟蹤每個驅動器的當前目錄。

a: 可以使用

c執行期函式

_ chdir

,而不是使用

setcurrentdirectory

函式來變更當前目錄。

_ chdir

函式從內部呼叫

setcurrentdirectory

,但是_chdir

也能夠新增或修改該環境變數,這樣,不同驅動器的當前目錄就可以保留。

b: 子程序的環境塊不會自動繼承父程序的當前目錄。相反,子程序的當前目錄將預設為每個驅動器的根目錄。如果想要讓子程序繼承父程序的當前目錄,該父程序必須建立這些驅動器名的環境變數。並在生成子程序前將它們新增給環境塊。通過呼叫

getfullpathname

函式父程序可以獲得它的當前目錄:

dword getfullpathname(pctstr pszfile, dword cchpath,

ptsrt pszpath, ptstr *ppszfilepart);

c: 程序的環境變數必須始終按字母順序來排序。因此驅動器名的環境變數通常必須置於環境塊的開始處。

第四章 程序

程序由兩部分組成 載入到程序位址空間的每個可執行檔案或dll檔案均被賦予乙個獨一無二的示例控制代碼。可執行檔案的示例控制代碼作為winmain的第乙個引數hinstexe來傳遞。載入資源的函式都需要該控制代碼的值。hicon loadicon hinstance hinst,pctstr pszic...

第四章 程序(1)

程序一a 程序通常被定義為乙個正在執行的程式的例項,它由兩個部分組成 os用來管理程序的核心物件 核心物件也是系統用來存放關於程序的統計資訊的地方 位址空間 它包含所有可執行模組或 dll模組的 和資料 它還包含動態記憶體分配的空間 當建立乙個程序時,系統會自動建立它的第乙個執行緒,稱為主線程。然後...

windows核心程式設計 第四章 程序

獲得當前目錄 dword getfullpathname pctstr pszfile,dword cchpath,ptstr pszpath,ptstr ppszfilepart 獲取c盤的當前目錄 tchar szcurdir max path getfullpathname c max pat...