fread(3) Library Functions Manual fread(3) fread, fwrite - / (libc -lc) #include size_t fread(size_t size, size_t n; void ptr[restrict size * n], size_t size, size_t n, FILE *restrict stream); size_t fwrite(size_t size, size_t n; const void ptr[restrict size * n], size_t size, size_t n, FILE *restrict stream); fread() n size stream ptr. fwrite() n size stream ptr. unlocked_stdio(3). fread() fwrite() . size 1. ( ). . fread() feof(3) ferror(3) . attributes(7). +------------+------------------------------------+--------------------+ || | | +------------+------------------------------------+--------------------+ |fread() | | MT-Safe | |fwrite() | | | +------------+------------------------------------+--------------------+ C11, POSIX.1-2008. POSIX.1-2001 C89. fread() ELF /bin/sh : $ ./a.out; ELF magic: 0x7f454c46 Class: 0x02 #include #include #include 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), countof(buffer), fp); if (ret != countof(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) 3 . . : . 6.18 10 2026 fread(3)