fread(3) Library Functions Manual fread(3) NOME fread, fwrite - entrada/saida de fluxo binario BIBLIOTECA Biblioteca C Padrao (libc, -lc) SINOPSE #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); DESCRICAO A funcao fread() le nmemb elementos de dados, cada um com size bytes, do fluxo apontado por stream, armazenando-os no local dado por ptr. A funcao fwrite() escreve nmemb elementos de dado, cada um com size bytes, no fluxo apontado por stream, obtendo-os a partir do local dado por ptr. Para contrapartes nao bloqueantes, veja unlocked_stdio(3). VALOR DE RETORNO On success, fread() and fwrite() return the number of items read or written. This number equals the number of bytes transferred only when size is 1. If an error occurs, or the end of the file is reached, the return value is a short item count (or zero). The file position indicator for the stream is advanced by the number of bytes successfully read or written. fread() nai distingue entre fim de arquivo e erro, e os chamadores precisam usar feof(3) e ferror(3) para determinar o que ocorreu. ATRIBUTOS Para uma explicacao dos termos usados nesta secao, consulte attributes(7). +--------------------------------------------+---------------+---------+ |Interface | Atributo | Valor | +--------------------------------------------+---------------+---------+ |fread(), fwrite() | Thread safety | MT-Safe | +--------------------------------------------+---------------+---------+ PADROES C11, POSIX.1-2008. HISTORICO POSIX.1-2001, C89. EXEMPLOS 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 Fonte do programa #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); } VEJA TAMBEM read(2), write(2), feof(3), ferror(3), unlocked_stdio(3) TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Rubens de Jesus Nogueira e Andre Luiz Fassone Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 fread(3)