1. 程式人生 > >20165329 實現mypwd

20165329 實現mypwd

20165329 實現mypwd

實現要求

1 學習pwd命令
2 研究pwd實現需要的系統呼叫(man -k; grep),寫出虛擬碼
3 實現mypwd
4 測試mypwd

pwd

pwd是print working directory的縮寫,即列印當前路徑的意思。開啟終端,一定會在執行命令的$號之前看見當前的工作目錄,不過一定會出現~在前面或是/etc在後面。此時輸入pwd命令就是可以將工作目錄完全展開。

虛擬碼

首先使用一下pwd命令,然後輸入 man pwd 以獲取pwd命令的相關資訊。

然後輸入 man -k directory | grep 2 得知一道getcwd()呼叫函式,而這道函式一定是和pwd命令相關的。

這是函式getcwd()的原型。

那麼這個pwd的虛擬碼描述就是這樣的:

一個字串陣列儲存絕對路徑
呼叫函式getcwd()
if (返回的指標==NULL)
    呼叫函數出錯,發出錯誤報告
else
    列印結果

程式碼實現

通過虛擬碼實現就這樣了:

#include <stdio.h>
#include <unistd.h> int main(void) { char buff[256]; getcwd(buff,sizeof(buff)); printf("當前路徑為:%s\n",buff); return 0; }

就沒有見過這麼簡單的,不過不用getcwd()實現pwd命令可能會要更長的程式碼去實現。

測試程式碼

測試結果: