實現mypwd 20175204張湲禎

2022-07-26 11:21:13 字數 1849 閱讀 9553

1 學習pwd命令

2 研究pwd實現需要的系統呼叫(man -k; grep),寫出偽**

3 實現mypwd

4 測試mypwd

提交過程部落格的鏈結

1.pwd命令詳解:

pwd命令功能是顯示當前所在工作目錄的全路徑嗎,可以通過pwd來檢視當前目錄的絕對路徑。

2.pwd命令引數:

-l:--logical,顯示當前的路徑,有連線檔案時,直接顯示連線檔案的路徑,(不加引數時預設此方式)。

-p:--physical,顯示當前的路徑,有連線檔案時,不使用連線路徑,直接顯示連線檔案所指向的檔案。 當包含多層連線檔案時,顯示連線檔案最終指向的檔案。

3.在linux下學習pwd命令:

使用man pwd

使用man -k pwd學習

4.使用pwd命令

1.pwd實現原理:pwd以絕對路徑列印當前的工作目錄,可以從當前目錄逐層向根目錄進行查詢,當找到根目錄,即可得到完全路徑。而系統通過inode來管理檔案,每個檔案都有inode號(目錄是特殊的檔案,每個目錄下有兩個特殊的檔名.(當前目錄)和..(父目錄))。不斷向前尋找到達根目錄時沒有父目錄,兩個特殊的檔名.和..仍然存在於根目錄中,他們inode號相同表示同一目錄。當不斷查詢的inode號與最初目錄的inode號相同時為最終的路徑。

2.利用man -k directory | grep 3查詢與路徑相關的庫函式,並利用命令學習getcwd,getwd函式。

3.偽**

1.獲得當前檔案的inode號

2.不斷向前尋找直到從根目錄中找到inode相同的值,找到相應的檔名

3.輸出路徑

1.實現**

#include#include#include#include#include#includevoid printpath();  //輸出路徑

char *inode_to_name(int); //不斷尋找找到與ionde相同的值,並獲得檔名

int getinode(char *); //獲得inode號

int main()

int getinode(char *str)

return st.st_ino; }

char *inode_to_name(int inode)

while((dirt = readdir(dirp)) != null)

} perror(".");

exit(-1);

}void printpath()

printpath();

printf("/%s",str);

}

1.輸入命令進行編譯執行。

Mypwd 的解讀與實現 20155202

pwd命令含義 在linux層次結構中,想要知道當前所處的目錄,可以用pwd命令,該命令顯示整個路徑名。pwd l p 描述標誌如果 pwd 環境變數包含了不包含檔名 點 或 點點 的當前目錄的絕對路徑名,則顯示 pwd 環境變數的值。否則,l 標誌與 p 標誌一樣執行。顯示當前目錄的絕對路徑名。與...

2023年待實現清單

回顧2016 嘗到了人世這鍋濃湯的滋味,看著甘甜如醴,實則五味雜陳,現在覺得成長就是一路下來對自己一些想當然的否定,多經見各式各樣的人和事,多體驗,才能有感悟,思想才會得到昇華。2017年計畫 計畫時間安排為 計畫一年內讀書數量10本。技術類書籍 60 經濟類 20 其他 20 從小到大,自己從來沒...

我們未曾盡力的2017,哪些目標沒實現?

豁然發現,2017 再有十幾天就要過去啦!可是我的年度目標,年度目標呢 都找不見了。o 可勁兒回想了半天,終於想起來參加小強老師 小強公升職記 作者 的年度計畫課程時現場手寫過年度目標,趕緊在餐桌旁椅子上雞窩一樣凌亂的書堆裡翻找,嘿,居然被我翻出來啦!來,看看 大哭三聲 o o o 好啦,擦擦眼淚,...