Linux下ANSI C檔案管理

2021-07-31 07:52:40 字數 1203 閱讀 6249

ansi檔案庫封裝了標準的檔案操作函式庫,通過系統呼叫函式可以很方便的對檔案進行操作,並且加入了檔案緩衝機制,提供記錄方式的對寫檔案,具有很好的可移植性,提高了**的健壯性。其主要包括以下幾個方面:

##1.檔案指標

##2.檔案和流之間的關係

##3.文字和二進位制

##4.檔案的基本操作

1.檔案是乙個可以永久儲存的位元組組合,在linux系統中,目錄、裝置檔案和管道都屬於檔案,不同的檔案具有不同的特性。在ansi中提供了乙個檔案操作的結構體,即檔案指標file。檔案的開啟,關閉,讀寫等操作都離不開它,該結構體包含在標頭檔案stdio.h中。

2.作業系統遮蔽了檔案操作的io和物理細節,我們不必追究一些底層的操作。檔案開啟後,就會以流的形式體現,操作檔案就等同於運算元據流。

3.ansi 規定了兩種檔案的存貯方式:文字和二進位制。在linux系統中檔案都是以二進位制儲存的,在使用者開啟的時候,根據使用者的指定方式進行訪問。

4.檔案的開啟和關閉

(1)file *fopen(const char *path,const char *mode);檔案開啟函式

(2)int fclose(file *stream);檔案關閉函式

其中在fopen函式中path指的是檔案路徑,mode指的是檔案的操作模式,如可讀、可寫等。這些都有對應的**可查。其中引數「」+「」表示在檔案的最後新增資料,這種方式不會破壞已存在的檔案內容。檔案開啟成功後就會返回乙個file指標,如果檔案開啟失敗返回null,通過判斷該指標來判斷檔案是否成功開啟。

5.檔案的讀寫

檔案一旦開啟就可以對檔案進行操作了,ansi提供三種不同的檔案操作分別是乙個字元、一行字元、成塊資料的操作。

(1)每次乙個字元的檔案操作

int getc(file *stream);

int fgetc(file *stream);

int getchar(void);

其中getc和fgetc函式的作用是相同的,讀入乙個字元到檔案流,但是getc的執行效率要高一些,這是問什麼呢?因為getc通常是乙個巨集定義,而fgetc是乙個函式,系統在呼叫乙個函式的時候效率沒有巨集替換來的快(個人再結合一些書籍看的,不知道對不對)。

int putc(int c,file *stream);

int fputc(int c,file *stream);

int putchar(int c);

與上面功能相對應,輸出乙個字元到檔案流。

ANSI C檔案IO管理

實驗4.2.1 3更新緩衝區內容 示例程式 setbuf example.c 1.執行示例程式。2.給出執行結果及分析。在示例程式的基礎上新增對fflush函式的測試。在設計文件中寫出測試思路。並給出執行結果及分析。執行結果 程式分析 第乙個測試寫入資料,檢視當前緩衝區內容為空,因為該程式設定為關閉...

Linux檔案操作(ANSI C)

1.檔案指標 ansi檔案操作提供了乙個檔案指標file來進行對檔案的開啟讀寫和關閉及其他訪問 它的結構體 typedef struct file 2.緩衝 緩衝目的是為了減少外部裝置的讀寫次數,同時使用緩衝能提高應用程式的讀寫效能 緩衝有三種 全緩衝 行緩衝 不帶緩衝。全緩衝 填滿才會操作 行緩衝...

Linux檔案管理下

對於檔案,我們可以讀取 read 寫入 write 和執行 execute 讀取是從已經存在的檔案中獲得資料。寫入是向新的檔案或者舊的檔案寫入資料。如果檔案儲存的是可執行的二進位製碼,那麼它可以被載入記憶體,作為乙個程式執行。在linux的檔案系統中,如果某個使用者想對某個檔案執行某一種操作,那麼該...