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 好啦,擦擦眼淚,...