Provided by: manpages-pt-br-dev_4.27.0-1_all bug

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).
       ┌─────────────────────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │ InterfaceAtributoValor   │
       ├─────────────────────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │ fread(), fwrite()                                                           │ Thread safety │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────────┴───────────────┴─────────┘

PADRÕES

       C11, POSIX.1-2008.

HISTÓRICO

       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 <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.9.1                             15 junho 2024                                         fread(3)