Provided by: manpages-pt-br-dev_4.21.0-2_all 

NOME
fread, fwrite - entrada/saída de fluxo binário
BIBLIOTECA
Biblioteca C Padrão (libc, -lc)
SINOPSE
#include <stdio.h>
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);
DESCRIÇÃO
A função fread() lê nmemb elementos de dados, cada um com size bytes, do fluxo apontado por stream,
armazenando-os no local dado por ptr.
A função 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 não 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() nãi 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 explicação dos termos usados nesta seção, consulte attributes(7).
┌─────────────────────────────────────────────────────────────────────────────┬───────────────┬─────────┐
│ Interface │ Atributo │ Valor │
├─────────────────────────────────────────────────────────────────────────────┼───────────────┼─────────┤
│ fread(), fwrite() │ Thread safety │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────────┴───────────────┴─────────┘
PADRÕES
POSIX.1-2001, POSIX.1-2008, C99.
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 <stdio.h>
#include <stdlib.h>
#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 TAMBÉM
read(2), write(2), feof(3), ferror(3), unlocked_stdio(3)
TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por Rubens de Jesus Nogueira
<darkseid99@usa.net> e André Luiz Fassone <lonely_wolf@ig.com.br>
Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as
condições de direitos autorais. Nenhuma responsabilidade é aceita.
Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de
discussão de tradutores.
Linux man-pages 6.03 29 dezembro 2022 fread(3)