Chúng tôi đã có một cuộc thảo luận ở đây tại nơi làm việc liên quan đến lý do tại sao fread và fwrite mất một kích thước cho mỗi thành viên và đếm và trả về số lượng thành viên đọc/viết thay vì chỉ lấy một bộ đệm và kích thước. Việc sử dụng duy nhất cho nó chúng tôi có thể đưa ra là nếu bạn muốn đọc/viết một mảng các cấu trúc mà không thể chia đều cho nền tảng và do đó đã được đệm nhưng không thể quá phổ biến như để đảm bảo lựa chọn này trong thiết kế.Lý do cơ bản cho kích thước fread/fwrite là gì và được tính là đối số?
Từ fread (3):
Chức năng fread() đọc yếu tố nmemb dữ liệu, mỗi kích thước byte dài, từ dòng trỏ đến bởi dòng, lưu trữ chúng tại địa điểm trao bởi ptr.
Hàm fwrite() ghi các phần tử nmemb của dữ liệu, mỗi byte kích thước dài, đến luồng được trỏ tới theo luồng, lấy chúng từ vị trí do ptr cung cấp.
fread() và fwrite() trả lại số mục được đọc hoặc viết thành công (nghĩa là, không phải số ký tự). Nếu một lỗi xảy ra, hoặc đạt đến kết thúc của tập tin , giá trị trả về là số đếm ngắn (hoặc số không).
hey đây là một câu hỏi hay. Tôi luôn luôn tự hỏi về nó –
Hãy kiểm tra chủ đề này: http://stackoverflow.com/questions/8589425/how-does-fread-really-work – Franken