linux c檔案相關操作

2021-08-31 01:29:14 字數 1064 閱讀 1364

1,操作檔案,需要檔案控制代碼 ,標頭檔案 #include

若用fgets函式讀取檔案內容,需要注意fgets函式的使用。

函式宣告:char *fgets(char *str, int n, file *stream)

引數:str -- 這是指向乙個字元陣列的指標,該陣列儲存了要讀取的字串。

n -- 這是要讀取的最大字元數(包括最後的空字元)。通常是使用以 str 傳遞的陣列長度。

stream -- 這是指向 file 物件的指標,該 file 物件標識了要從中讀取字元的流。

返回值:

1,如果成功,該函式返回第乙個引數 str;

2,如果到達檔案末尾或者沒有讀取到任何字元,str 的內容保持不變,並返回乙個空指標null;

3,如果發生讀入錯誤,error指示器被設定,返回乙個空指標null,str的值可能被改變。

注意設定讀取值n與要讀取內容的關係。

假設用fgets讀取乙個檔案,該檔案每一行長度都為length,結尾都有換行符

<1>若設定 n < length

則讀取到的內容為n-1個長度,在加上乙個'\0';再次讀取時,會從該行的n處開始讀取

<2>若設定 n >= length+2

則會讀取這一行完整的內容,包括末尾的'\n'和'\0'。

舉個栗子:

建立檔案file.txt,內容為:

1234567890

abcdefghij

讀取檔案 

#include#includeint main(int argc, char *argv)

3,刪除檔案及資料夾函式:

#include有 remove函式,int remove(const char *filename)

該函式可以傳入檔案或資料夾,但只能刪除空資料夾,否則不成功。

有文章說,remove其實是根據傳入引數呼叫不同的函式,

若傳入檔案,呼叫unlink函式

若傳入資料夾,呼叫rmdir函式

Linux C 檔案操作相關整理

1 檢查檔案是否存在 access 按照實際使用者id和實際組進行訪問許可權測試 include int access const char pathname,int mode pathname 檔案路徑 mode 返回 0表示不存在 2 檢查目錄是否存在 opendir 開啟檔案目錄,成功返回指標...

Linux C 檔案操作

系統呼叫比標準庫移植性差 不同os介面不一定一致 系統呼叫會進入核心態,對程式執行的開銷較大.預設檔案描述符 0 標準輸入 1 標準輸出 2 標準錯誤輸出 include include include include include define maxline 80 void if error ...

Linux C 檔案操作

linux 檔案操作 1 linux檔案操作 1.1 系統呼叫 系統呼叫發生核心空間,因此如果在使用者空間的一般應用程式中使用系統呼叫來進行檔案操作,會有使用者空間到核心空間的開銷。但通過系統呼叫來訪問檔案是最直接的方式,系統呼叫函式直接作用於作業系統核心的裝置驅動程式從而實現檔案訪問。檔案描述符f...