簡介
函式原型
size_t fread ( void * buffer , size_t size , size_t count , FILE * stream ) ;
參 數
buffer
用於接收數據的記憶體地址
size
要讀的每個數據項的位元組數,單位是位元組
count
要讀count個數據項,每個數據項size個位元組.
stream
輸入流
返回值
返回真實讀取的項數,若大於count則意味著產生了錯誤。另外,產生錯誤後,檔案位置指示器是無法確定的。若其他stream或buffer為空指針,或在unicode模式中寫入的位元組數為奇數,此函式設定errno為EINVAL以及返回0.
程式例
C語言
MSDN示例
PHP
PHP函式
(PHP 4, PHP 5)
fread -- 讀取檔案(可安全用於二進制檔案)
說明
string fread( int handle, int length )
fread()從檔案指針handle讀取最多 length 個位元組。 該函式在讀取完 length 個位元組數,或到達 EOF 的時候,或(對於網路流)當一個包可用時就會停止讀取檔案,視乎先碰到哪種情況。
注意
在區分二進制檔案和文本檔案的系統上(如 Windows)打開檔案時,fopen() 函式的 mode 參數要加上 'b'。
當從網路流或者管道讀取時,例如在讀取從遠程檔案或 popen()以及 proc_open()的返回時,讀取會在一個包可用之後停止。這意味著你應該如下例所示將數據收集起來合併成大塊。
如果你只是想將一個檔案的內容讀入到一個字元串中,用 file_get_contents(),它的性能比上面的代碼好得多。
MATLAB函式
功能:
fread函式可從檔案中讀取二進制數據
語法:
A = fread(fid, count)
A = fread(fid, count, precision)
其中fid為指針所指檔案中的當前位置,count指讀取的數據個數, precision表示以什麼格式的數據類型讀取數據。
例子:
fid = fopen('alphabet.txt', 'r');
c = fread(fid, 5)'
c =
65 66 67 68 69
fclose(fid);
程式說明:alphabet檔案中按順序存儲著26個英文字母,讀取檔案之前要先打開檔案,由於未指定讀取數據的類型,所以程式指定默認類型為無符號字元型即uchar,65、66、67、68、69代表A、B、C、D、E,檔案用完還要記得關閉檔案,以便釋放指針。
fid = fopen('alphabet.txt', 'r');
c = fread(fid, '*char')'
c =
ABCDEFGHIJKLMNOPQRSTUVWXYZ
fclose(fid);
程式說明:此程式未指定數據個數,而默認為全部數據,所以顯示了檔案中的所有數據。