Écrire dans un fichier en C
-
Utiliser la fonction
fwrite
pour écrire dans un fichier en C -
Utilisez la fonction
write
pour écrire dans un fichier en C
Cet article présente plusieurs méthodes pour écrire sur un fichier en C.
Utiliser la fonction fwrite
pour écrire dans un fichier en C
La bibliothèque d’E/S standard en C fournit les fonctions de base pour la lecture/écriture des fichiers, à savoir fread
et fwrite
. La fonction fwrite
prend quatre arguments, un pointeur void
où les données doivent être obtenues, la taille et le nombre d’éléments de données au niveau du pointeur donné, et un pointeur FILE*
pour le flux de fichiers de sortie.
Notez que le flux de fichiers doit être ouvert en premier avec la fonction fopen
, qui prend le nom du fichier avec le mode désiré et retourne FILE*
. Dans ce cas, nous utilisons le mode w+
pour ouvrir le fichier en lecture et en écriture. Attention cependant, si le fichier n’existe pas, un nouveau fichier est créé avec le prénom. Ensuite, nous allons vérifier si le pointeur de flux de fichiers renvoyé est valide. Si ce n’est pas le cas, il imprimera le message d’erreur correspondant et quittera le programme. Une fois que le pointeur de flux de fichiers est vérifié, la fonction fwrite
peut être appelée. Gardez à l’esprit que vous devez fermer le fichier avec la fonction fclose
avant que le programme ne se termine.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* str = "Temporary string to be written to file!";
int main(void) {
const char* filename = "out.txt";
FILE* output_file = fopen(filename, "w+");
if (!output_file) {
perror("fopen");
exit(EXIT_FAILURE);
}
fwrite(str, 1, strlen(str), output_file);
printf("Done Writing!\n");
fclose(output_file);
exit(EXIT_SUCCESS);
}
Utilisez la fonction write
pour écrire dans un fichier en C
On peut aussi utiliser write
, qui est un appel de fonction compatible POSIX qui écrit le nombre d’octets donné dans le fichier auquel le descripteur de fichier fait référence. Notez qu’un descripteur de fichier est un nombre entier associé aux flux de fichiers ouverts. Pour récupérer le descripteur, nous devons appeler la fonction open
avec le chemin du nom du fichier. La fonction write
prend le descripteur de fichier comme premier argument et le tampon des données pointées par le void*
comme second argument. Le troisième argument est le nombre d’octets à écrire dans le fichier, calculé avec la fonction strlen
dans l’exemple suivant.
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
const char* str = "Temporary string to be written to file!";
int main(void) {
const char* filename = "out.txt";
int fd = open(filename, O_WRONLY);
if (fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
write(fd, str, strlen(str));
printf("Done Writing!\n");
close(fd);
exit(EXIT_SUCCESS);
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook