Provided by: manpages-pt-br-dev_4.18.1-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

       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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-portuguese@lists.debian.org⟩.