Hàm fread() trong C

Hàm size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) trong Thư viện C chuẩn reads data from the given stream into the array pointed to, by ptr.

Khai báo hàm fread() trong C

Dưới đây là phần khai báo cho hàm fread() trong C:

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

Tham số

ptr − Đây là con trỏ tới một khối bộ nhớ với kích cỡ tối thiểu là size*nmemb byte.

size − Đây là kích cỡ (giá trị byte) của mỗi phần tử được đọc.

nmemb − Đây là số phần tử, với mỗi phần tử có kích cỡ là size byte.

stream − Đây là con trỏ tới một đối tượng FILE mà xác định một Input Stream.

Trả về giá trị

Tổng số phần tử được đọc thành công được trả về dưới dạng một đối tượng size_t, mà là một kiểu dữ liệu nguyên. Nếu số này khác với tham số nmemb, thì hoặc một lỗi đã xảy ra hoặc bắt gặp End-Of-File.

Ví dụ

Chương trình C sau minh họa cách sử dụng của hàm fread() trong C:

#include <stdio.h>
#include <string.h>int main()
{
   FILE *fp;
   char c[] = "Hoc C co ban va nang cao tai QTM !!!";
   char buffer[100];   /* mo file de doc va ghi */
   fp = fopen("baitapc.txt", "w+");   /* Ghi du lieu vao file */
   fwrite(c, strlen(c) + 1, 1, fp);   /* thiet lap vi tri con tro tim kiem ve dau file */
   fseek(fp, SEEK_SET, 0);   /* Doc va hien thi du lieu */
   fread(buffer, strlen(c)+1, 1, fp);
   printf("%s\n", buffer);
   fclose(fp);
   
   return(0);
}

Biên dịch và chạy chương trình C trên để xem kết quả: