FWRITE |
Écriture dans le fichier |
---|---|
Langage C | stdio.h |
Syntaxe
long fwrite(void *tampon,size_t taille,size_t n,FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
tampon | Ce paramètre permet d'indiquer le bloc de données à écrire |
n | Ce paramètre permet d'indiquer le nombre de bloc de données |
taille | Ce paramètre permet d'indiquer la taille du bloc de données |
Description
Cette fonction effectue l'écriture d'un bloc de mémoire de taille n*taille octets dans un fichier.
Algorithme
MODULE FWRITE(ptr, size, count, stream) SI stream est NULL ALORS RETOURNE erreur "Flux non valide" FIN SI SI ptr est NULL ou si size ou count est 0 ALORS RETOURNE 0 * Aucun élément n'est écrit FIN SI Initialiser un compteur d'écriture à 0 BOUCLE POUR CHAQUE élément de 0 à count - 1 FAIRE Calculer l'adresse de l'élément actuel en utilisant ptr + (i x size) Écrire size octets de l'élément dans le flux stream SI l'écriture échoue ALORS Retourner le nombre d'éléments déjà écrits (compteur d'écriture) FIN SI Incrémenter le compteur d'écriture FIN BOUCLE POUR CHAQUE * Nombre total d'éléments correctement écrits RETOURNE le compteur d'écriture |
Remarques
- Écriture de blocs de données dans un fichier : La fonction fwrite permet d'écrire un bloc de données, souvent structuré, dans un fichier. Contrairement à fputs ou fputc, elle peut traiter des données binaires ou des chaînes de caractères, ce qui en fait un choix flexible pour des opérations d'écriture volumineuses.
- Spécification des tailles de blocs et du nombre d'éléments : Les paramètres de fwrite incluent la taille d'un élément et le nombre d'éléments à écrire. Cela permet un contrôle précis sur les données à écrire, notamment pour les structures ou les tableaux où chaque élément a une taille définie.
- Retourne le nombre d'éléments écrits : fwrite renvoie un entier indiquant le nombre d'éléments écrits avec succès. Si ce nombre est inférieur au nombre prévu, cela signale une erreur, comme un espace disque insuffisant ou un fichier ouvert en lecture seulement.
- Gestion des tampons : Comme pour toutes les fonctions de la bibliothèque standard, fwrite utilise un tampon pour optimiser les écritures. Cela signifie que les données ne sont pas toujours immédiatement écrites sur le disque. Il est donc conseillé d'appeler fflush ou de fermer le fichier avec fclose pour garantir que les données sont bien enregistrées.
- Indépendance du format des données : fwrite est souvent utilisée pour écrire des données binaires directement depuis la mémoire. Cela rend la fonction indépendante du format des données, mais cela peut aussi poser des problèmes de portabilité, notamment si les fichiers sont transférés entre des systèmes ayant des tailles ou des alignements de données différents.
- Précautions lors de l'écriture de structures : Lorsqu'on utilise fwrite pour écrire des structures, il est important de s'assurer qu'il n'y a pas de padding ou d'alignement dans les structures. Sinon, des données supplémentaires ou non désirées pourraient être écrites, entraînant des erreurs lors de la lecture.
- Efficacité pour les opérations d'écriture en série : fwrite est particulièrement efficace pour les écritures en série dans des fichiers binaires, car elle permet de transférer de grands blocs de données en une seule opération. Elle est donc préférée dans les applications nécessitant une manipulation rapide des fichiers, comme les bases de données ou les programmes de traitement d'images.
Exemple
Voici un exemple typique de l'utilisation de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant dans le fichier «monfichier.txt» :
Gladir.comVoir également
Langage de programmation - C - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - fread
Langage de programmation - C++ - Référence de procédures et fonctions - fwrite
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 732.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 120.
Dernière mise à jour : Mardi, le 28 juillet 2015