Kami berdiskusi di sini tentang mengapa fread dan fwrite mengambil ukuran per anggota dan menghitung serta mengembalikan jumlah anggota yang dibaca / ditulis daripada hanya mengambil buffer dan ukuran. Satu-satunya penggunaan untuk itu yang bisa kami hasilkan adalah jika Anda ingin membaca / menulis array struct yang tidak dapat dibagi secara merata oleh perataan platform dan karenanya telah empuk tetapi itu tidak bisa begitu umum untuk menjamin pilihan ini dalam desain.
Dari FREAD (3) :
Fungsi fread () membaca nmemb elemen data, masing-masing berukuran panjang byte, dari aliran yang ditunjuk oleh aliran, menyimpannya di lokasi yang diberikan oleh ptr.
Fungsi fwrite () menulis elemen nmemb data, masing-masing berukuran panjang byte, ke aliran yang ditunjuk oleh aliran, memperolehnya dari lokasi yang diberikan oleh ptr.
fread () dan fwrite () mengembalikan jumlah item yang berhasil dibaca atau ditulis (yaitu, bukan jumlah karakter). Jika terjadi kesalahan, atau akhir file tercapai, nilai yang dikembalikan adalah hitungan item pendek (atau nol).