C語言實現Linux cd功能

2021-09-28 23:01:00 字數 744 閱讀 1956

查了一下,關於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...