查了一下,關於cd命令網上有各種複雜的實現方式。其實要求不嚴格的話,呼叫chdir()
.即可實現。
// cd方法簡單實現
void
cd(char *path)
int chdir(const char *path );
說明:chdir函式用於改變當前工作目錄。呼叫引數是指向目錄的指標,呼叫程序需要有搜尋整個目錄的許可權。每個程序都具有乙個當前工作目錄。在解析相對目錄引用時,該目錄是搜尋路徑的開始之處。如果呼叫程序更改了目錄,則它只對該程序有效,而不能影響呼叫它的那個程序。在退出程式時,shell還會返回開始時的那個工作目錄。
(1) 核心解析引數中的路徑名,並確保這個路徑名有效。為了做到這一點,就路徑名解析而言,核心使用相同的演算法。如果路徑名無效,它輸出錯誤訊息並退出。
(2) 如果路徑名有效,核心定位該目錄的索引節點,並檢查它的檔案型別和許可權位,確保目標檔案是目錄以及程序的所有者可以訪問該目錄(否則改變到新目錄就沒有用)。
(3) 核心用新目標目錄的路徑名和/或索引節點替換u區中當前目錄路徑名和/或它的索引節點號。
錯誤資訊:
efault: path 指向了非法位址
enametoolng:路徑過長
enoent:檔案不存在
enomem:核心記憶體不足
enotdir:給出路徑不是目錄
eacces:無訪問路徑中某個目錄的許可權
eio:發生i/o錯誤
C語言實現簡單翻譯功能
題目描述 編寫乙個程式,依次輸入英文與漢語拼音,輸入兩個 表示輸入結束,再輸入一段英語句子,列印出其對應漢語拼音。要求 不得使用標頭檔案 題目中要求不得使用提醒我們使用其中的函式來編寫 不過函式的實現需要自己來思考,根據自己的需要可以調整原函式的功能。思路大致是 輸入完畢後拿原結構體記錄的英文內容與...
C語言 實現簡單的printf功能
include include include define abs x x 0 x 1 x intprintf char fmt,char tem 1024 char p1,p2,p3,ch 可變第一引數指向ap va start ap,fmt 複製格式化資料到buf strcpy buf,fmt...
C語言實現簡單的掃雷功能
這是我跟著學習 完成的第乙個小遊戲,運用到的知識不多都是陣列相關的知識,重要的是思路,在設計的時候要先繪製出大概的框圖,要知道遊戲的根本,這樣會讓你寫程式的時候更加方便。下面看 test.c define crt secure no warnings include game.h void test...