fwrite

Grava dados em um fluxo.

Sintaxe

size_t fwrite(
   const void *buffer,
   size_t size,
   size_t count,
   FILE *stream
);

Parâmetros

buffer
Ponteiro para os dados a serem gravados.

size
Tamanho do item, em bytes.

count
Máximo de itens a serem gravados.

stream
Ponteiro para a estrutura FILE.

Valor Retornado

fwrite retorna quantos itens são gravados, o que pode ser menor que count em caso de erro. Além disso, em caso de erro, não será possível determinar o indicador de posição do arquivo. Se stream ou buffer for um ponteiro nulo ou se for especificado um número ímpar de bytes a serem gravados no modo Unicode, a função invocará o manipulador de parâmetro inválido, conforme descrito em stream. Se a execução tiver permissão para continuar, essa função define errno como EINVAL e retorna 0.

Comentários

A função fwrite grava até count itens, com size de comprimento cada um, de buffer até ostream de saída. O ponteiro do arquivo associado a stream (se houver) é incrementado pela quantidade de bytes gravados. Se stream é aberto no modo de texto, cada alimentação de linha é substituído por um par de retorno de carro-alimentação de linha. A substituição não interfere no valor retornado.

Quando stream é aberto no modo de conversão Unicode — , por exemplo, se stream é aberto chamando fopen e usando um parâmetro de modo que inclui ccs=UNICODE , ccs=UTF-16LE , ou ccs=UTF-8 , ou se o modo é alterado para um modo de conversão Unicode usando _setmode e um parâmetro de modo que inclui _O_WTEXT , ou, o _O_U16TEXT_O_U8TEXTstream é interpretado como um ponteiro para uma matriz de wchar_t que contém dados UTF-16. Tentar gravar uma quantidade ímpar de bytes nesse modo gera um erro de validação de parâmetro.

Como essa função bloqueia o thread da chamada, ela é thread-safe. Para uma versão sem bloqueio, consulte _fwrite_nolock.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar isso, consulte estado global no CRT.

Requisitos

Função Cabeçalho necessário
fwrite <stdio.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Consulte o exemplo para fread .

Confira também

E/S de fluxo
_setmode
fread
_fwrite_nolock
_write