
276
|
第八章
每個目錄包含兩個特殊目錄:「.」以及「..」(分別稱為 dot 以及 dot-dot)。 dot(點)目
錄用於參照目錄本身。而 dot-dot(點點)目錄則用於參照目錄的父目錄。例如,目錄
/
home/kidd/gold/..
如同目錄
/home/kidd
。根目錄的 dot 以及 dot-dot 目錄則指向根目錄本
身—也就是,
/
、
/.
以及
/..
皆為同一個目錄。因此,技術上,你可以說根目錄也是它自己
的子目錄。
當前工作目錄
每個行程都具有一個當前目錄,該目錄最初繼承自父行程。該目錄又稱為行程的
當前工
作目錄
(
current working directory
,常簡寫為
cwd
)。當前工作目錄是核心用於解析相對
路徑名稱的起點。舉例來說,如果一個行程的當前工作目錄是
/home/blackbeard
,而且該
行程試圖開啟
parrot.jpg
,於是核心將試圖開啟
/home/blackbeard/parrot.jpg
。相對的,如
果行程試圖開啟
/usr/bin/mast
,則核心的確會開啟
/usr/bin/mast
。當前工作目錄不會影響
絕對路徑名稱(也就是,以一個斜線符號開頭的路徑名稱)
一個行程可以取得及變更它的當前工作目錄。
取得當前工作目錄
取得當前工作目錄的首選方法,就是使用經 POSIX 標準化的
getcwd()
系統呼叫:
#include <unistd.h>
char * getcwd (char *buf, size_t size);
執行成功時,
getcwd()
會把當前工作目錄(一個絕對的路徑名稱)複製到 ...