fread() - C語言庫函數

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

聲明

以下是用fread()函數的聲明。

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

參數

  • ptr -- 這是一個記憶體塊的指針* nmemb位元組的最小尺寸大小。

  • size -- 這是要讀取的大小(以位元組為單位)的每一個元素。

  • nmemb -- 這是元素的數目,每一個都與一個大小為size個位元組。

  • stream -- 這是一個檔對象的指針,指定一個輸入流。

返回值

作為為size_t對象,它是一個不可分割的數據類型,則返回成功讀取的元素的總數。如果這個數字不同於nmemb參數,無論是發生錯誤或達到檔末尾。

例子

下麵的例子顯示了用fread()函數的用法。

#include <stdio.h>
#include <string.h>

int main()
{
   FILE *fp;
   char c[] = "this is zaixian";
   char buffer[20];

   /* Open file for both reading and writing */
   fp = fopen("file.txt", "w+");

   /* Write data to the file */
   fwrite(c, strlen(c) + 1, 1, fp);

   /* Seek to the beginning of the file */
   fseek(fp, SEEK_SET, 0);

   /* Read and display data */
   fread(buffer, strlen(c)+1, 1, fp);
   printf("%s
", buffer);
   fclose(fp);

   return(0);
}

讓我們編譯和運行上面的程式,這將創建一個檔file.txt的,寫入的內容: this is zaixian。下一步,我們使用 fseek() 函數寫指針複位到開始的檔和準備檔的內容如下: 

this is zaixian

上一篇: fopen() - C語言庫函數 下一篇: freopen() - C語言庫函數