Namespaces
Variants

fwrite

From cppreference.net
< c ‎ | io
Definido en el encabezado <stdio.h>
size_t fwrite ( const void * buffer, size_t size, size_t count,
FILE * stream ) ;
(hasta C99)
size_t fwrite ( const void * restrict buffer, size_t size, size_t count,
FILE * restrict stream ) ;
(desde C99)

Escribe count objetos del array dado buffer al flujo de salida stream . Los objetos se escriben como si cada objeto se reinterpretara como un array de unsigned char y se llamara a fputc size veces para cada objeto, escribiendo esos unsigned char en stream , en orden. El indicador de posición del archivo para el flujo avanza según el número de caracteres escritos.

Si ocurre un error, el valor resultante del indicador de posición de archivo para el flujo es indeterminado.

Contenidos

Parámetros

buffer - puntero al primer objeto en el array a escribir
size - tamaño de cada objeto
count - número de objetos a escribir
stream - puntero al flujo de salida

Valor de retorno

El número de objetos escritos exitosamente, que puede ser menor que count si ocurre un error.

Si size o count es cero, fwrite retorna cero y no realiza ninguna otra acción.

Ejemplo

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
enum { SIZE = 5 };
int main(void)
{
    double a[SIZE] = {1, 2, 3, 4, 5};
    FILE* f1 = fopen("file.bin", "wb");
    assert(f1);
    size_t r1 = fwrite(a, sizeof a[0], SIZE, f1);
    printf("wrote %zu elements out of %d requested\n", r1, SIZE);
    fclose(f1);
    double b[SIZE];
    FILE* f2 = fopen("file.bin", "rb");
    size_t r2 = fread(b, sizeof b[0], SIZE, f2);
    fclose(f2);
    printf("read back: ");
    for (size_t i = 0; i < r2; ++i)
        printf("%0.2f ", b[i]);
}

Salida:

wrote 5 elements out of 5 requested
read back: 1.00 2.00 3.00 4.00 5.00

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.21.8.2 La función fwrite (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.21.8.2 La función fwrite (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.21.8.2 La función fwrite (p: 335-336)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.19.8.2 La función fwrite (p: 301-302)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.9.8.2 La función fwrite

Véase también

imprime salida formateada a stdout , un flujo de archivo o un búfer
(función)
escribe una cadena de caracteres a un flujo de archivo
(función)
lee desde un archivo
(función)