要寫乙個測試磁碟讀寫效能的測試軟體,但是用fwrite類似函式好像都不準確,所以還是先做一下了解。
c檔案概述
1、「檔案(file)」:所謂「檔案」是指一組相關資料的有序集合。資料以檔案的形式存放在外部介質(一般是磁碟、磁帶、光碟等)上,在作業系統中是以檔案為單位對資料進行管理的。以檔名作為訪問檔案的標識。
2、c語言把檔案看作乙個位元組序列,即由一連串的位元組組成。根據檔案中的資料組織形式,資料檔案可分為ascii碼檔案和二進位制檔案。
ascii碼檔案,又稱為「文字檔案」(text),其每乙個位元組存放乙個ascii碼。
二進位制檔案,把記憶體中的資料按其在記憶體中的儲存形式存放在磁碟上。
例:十進位制整數10000,在記憶體中佔兩個位元組,其存放形式是:00100111,00010000。在二進位制檔案中也按這種方式存放。
但是,在ascii檔案中,十進位制整數10000存放為31h、30h、30h、30h、30h,佔五個位元組,它們分別是1、0、0、0、0、0字母的ascii碼。
3、按照作業系統對磁碟檔案的讀寫方式,檔案可以分為「緩衝檔案系統」和「非緩衝檔案系統」。
緩衝檔案系統:作業系統在記憶體中為每乙個正在使用的檔案開闢乙個讀寫緩衝區。從記憶體向磁碟輸出資料必須先送到記憶體中的緩衝區,裝滿緩衝區後才一起送到磁碟上。如果從磁碟向記憶體讀入資料,則一次從磁碟檔案將一批資料輸入到記憶體緩衝區,然後再從緩衝區逐個地將資料送到程式資料區。
非緩衝檔案系統:指作業系統不自動開闢確定大小的讀寫緩衝區,而由程式為每個檔案設定緩衝區。
在unix系統下,用緩衝檔案系統來處理文字檔案,用非緩衝檔案系統處理二進位制檔案。ansi c標準只採用緩衝檔案系統。
在c語言中,沒有輸入輸出語句,對檔案的讀寫都是用庫函式來實現的。本章只介紹ansi c標準規定的緩衝檔案系統。
檔案型別指標
緩衝檔案系統中,每乙個使用的檔案都在記憶體中開闢乙個「檔案資訊區」,用來存放檔案的相關資訊(檔案的名字、檔案當前的讀寫位置、檔案操作方式等)。這些資訊儲存在乙個結構體變數中,該結構體是由系統定義的,取名為file。turbo c 3.0 在stdio.h檔案中有以下檔案型別的宣告:
typedef struct file;
定義檔案指標變數的一般形式為:
file *檔案結構指標變數名
例如:file *fp;
注意:只有通過檔案指標,才能呼叫相應的檔案。
看起來使用file 檔案指標相關函式都會使用到系統快取,這樣的結果不準確,createfile值得研究一下。。
檔案操作函式(C)
開啟乙個檔案 errno t fopen s file pfile,const char filename,const char mode 成功返回0,失敗返回錯誤 訪問型別 關閉開啟的檔案流 size t fread void buffer,要讀到的目的地 儲存資料的記憶體 size t size...
c檔案操作函式
1.檔案型別指標 typedef struct file 2.開啟檔案 fopen filename r 常用開啟檔案方式 if fp fopen file1 r null 3.關閉檔案。fclose fp 4.向檔案讀寫字元 fgetc fp 從fp指向的檔案讀入乙個字元 fputc ch,fp ...
C檔案操作常用函式
函式名 fseek 功 能 重定位流上的檔案指標 用 法 int fseek file stream,long offset,int fromwhere 程式例 include long filesize file stream int main void long filesize file st...