fread(3) Library Functions Manual fread(3) fread, fwrite - / C (libc, -lc) #include size_t fread(void ptr[restrict .size * .nmemb], size_t size, size_t nmemb, FILE *restrict stream); size_t fwrite(const void ptr[restrict .size * .nmemb], size_t size, size_t nmemb, FILE *restrict stream); fread() nmemb ( size ) , stream, , ptr. fwrite() nmemb ( size ) , stream, , ptr. , . unlocked_stdio(3). fread() fwrite() . , size 1. ( ). The file position indicator for the stream is advanced by the number of bytes successfully read or written. fread() ; feof(3) ferror(3). attributes(7). +----------------------------+----------------------------------------------------------+--------------------------+ | | | | +----------------------------+----------------------------------------------------------+--------------------------+ |fread(), fwrite() | | MT-Safe | +----------------------------+----------------------------------------------------------+--------------------------+ C11, POSIX.1-2008. POSIX.1-2001, C89. The program below demonstrates the use of fread() by parsing /bin/sh ELF executable in binary mode and printing its magic and class: $ ./a.out ELF magic: 0x7f454c46 Class: 0x02 #include #include #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) int main(void) { FILE *fp; size_t ret; unsigned char buffer[4]; fp = fopen("/bin/sh", "rb"); if (!fp) { perror("fopen"); return EXIT_FAILURE; } ret = fread(buffer, sizeof(*buffer), ARRAY_SIZE(buffer), fp); if (ret != ARRAY_SIZE(buffer)) { fprintf(stderr, "fread() failed: %zu\n", ret); exit(EXIT_FAILURE); } printf("ELF magic: %#04x%02x%02x%02x\n", buffer[0], buffer[1], buffer[2], buffer[3]); ret = fread(buffer, 1, 1, fp); if (ret != 1) { fprintf(stderr, "fread() failed: %zu\n", ret); exit(EXIT_FAILURE); } printf("Class: %#04x\n", buffer[0]); fclose(fp); exit(EXIT_SUCCESS); } read(2), write(2), feof(3), ferror(3), unlocked_stdio(3) () Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () <>. Linux 6.9.1 15 2024 . fread(3)