Écrire dans un fichier en C

Jinku Hu 12 octobre 2023
  1. Utiliser la fonction fwrite pour écrire dans un fichier en C
  2. Utilisez la fonction write pour écrire dans un fichier en C
É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);
}
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Article connexe - C File