C 庫函數 - fread()

C 標準庫 - <stdio.h> C 標準庫 - <stdio.h>

描述

C 庫函數 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 從給定流 stream 讀取數據到 ptr 所指向的數組中。

聲明

下麵是 fread() 函數的聲明。

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

參數

  • ptr -- 這是指向帶有最小尺寸 size*nmemb 位元組的記憶體塊的指針。
  • size -- 這是要讀取的每個元素的大小,以位元組為單位。
  • nmemb -- 這是元素的個數,每個元素的大小為 size 位元組。
  • stream -- 這是指向 FILE 對象的指針,該 FILE 對象指定了一個輸入流。

返回值

成功讀取的元素總數會以 size_t 對象返回,size_t 對象是一個整型數據類型。如果總數與 nmemb 參數不同,則可能發生了一個錯誤或者到達了檔末尾。

實例

下麵的實例演示了 fread() 函數的用法。

實例

#include <stdio.h>
#include <string.h>
 
int main()
{
   FILE *fp;
   char c[] = "This is zaixian";
   char buffer[20];
 
   /* 打開檔用於讀寫 */
   fp = fopen("file.txt", "w+");
 
   /* 寫入數據到檔 */
   fwrite(c, strlen(c) + 1, 1, fp);
 
   /* 查找檔的開頭 */
   fseek(fp, 0, SEEK_SET);
 
   /* 讀取並顯示數據 */
   fread(buffer, strlen(c)+1, 1, fp);
   printf("%s\n", buffer);
   fclose(fp);
   
   return(0);
}

讓我們編譯並運行上面的程式,這將創建一個檔 file.txt,然後寫入內容 This is zaixian。接下來我們使用 fseek() 函數來重置寫指針到檔的開頭,檔內容如下所示:

This is zaixian

C 標準庫 - <stdio.h> C 標準庫 - <stdio.h>