Namespaces
Variants

fwrite

De fr.cppreference.net
< c | io
 
 
Entrée/sortie de fichier
Types et objets
        
Fonctions
Accès aux fichiers
(C95)
Entrée/sortie non formatée
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Entrée formatée
Entrée/sortie directe
Sortie formatée
Positionnement dans le fichier
Gestion des erreurs
Opérations sur les fichiers
 
Définie dans l'en-tête <stdio.h>
size_t fwrite( const void* buffer, size_t size, size_t count,
               FILE* stream );
(jusqu'à C99)
size_t fwrite( const void* restrict buffer, size_t size, size_t count,
               FILE* restrict stream );
(depuis C99)

Écrit count d'objets depuis le tableau donné buffer vers le flux de sortie stream. Les objets sont écrits comme si chaque objet était réinterprété comme un tableau de unsigned char et en appelant fputc size fois pour chaque objet pour écrire ces unsigned chars dans stream, dans l'ordre. L'indicateur de position du fichier pour le flux est avancé du nombre de caractères écrits.

Si une erreur se produit, la valeur résultante de l'indicateur de position du fichier pour le flux est indéterminée.

Paramètres

buffer - pointeur vers le premier objet du tableau à écrire
size - taille de chaque objet
count - le nombre d'objets à écrire
stream - pointeur vers le flux de sortie

Valeur de retour

Le nombre d'objets écrits avec succès, qui sera inférieur à count uniquement si une erreur se produit.

Si size ou count est zéro, fwrite renvoie zéro et n'effectue aucune autre action.

Exemple

#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]);
}

Sortie :

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

Références

  • Norme C23 (ISO/IEC 9899:2024) :
  • 7.21.8.2 La fonction fwrite (p : TBD)
  • Norme C17 (ISO/IEC 9899:2018) :
  • 7.21.8.2 La fonction fwrite (p : TBD)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.21.8.2 La fonction fwrite (p : 335-336)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.19.8.2 La fonction fwrite (p : 301-302)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.9.8.2 La fonction fwrite

Voir aussi

affiche une sortie formatée vers stdout, un flux de fichier ou un tampon
(fonction)
écrit une chaîne de caractères dans un flux de fichier
(fonction)
lit depuis un fichier
(fonction)
Documentation C++ pour fwrite