fwrite - écrire des octets dans un fichier
#include <stdio.h>
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
Considérez void *
comme représentant l'adresse du premier octet de tout type de données. Considérez size_t
comme un long
.
Cette fonction écrit des données dans un fichier qui a été ouvert via fopen. Elle attend en entrée:
ptr
, qui est l'adresse (du premier octet) de la mémoire à partir de laquelle lire les données,size
, qui est la taille (en octets) du type de données à écrire,nmemb
, qui est le nombre de ces types à écrire en une seule fois, etstream
, qui est le pointeur vers un FILE
renvoyé par fopen.Par exemple, si vous écrivez un char
à la fois, size
serait sizeof(char)
(c'est-à-dire 1
), et nmemb
serait 1
.
Cette fonction renvoie le nombre d'éléments écrits, qui est égal au nombre d'octets écrits lorsque size
vaut 1
.
Si une erreur se produit, ou si la fin du fichier est atteinte, cette fonction peut renvoyer une valeur inférieure à nmemb
ou même 0
.
#include <stdio.h>
int main(void)
{
FILE *input = fopen("input.txt", "r");
if (input == NULL)
{
return 1;
}
FILE *output = fopen("output.txt", "w");
if (output == NULL)
{
fclose(input);
return 1;
}
char c;
while (fread(&c, sizeof(char), 1, input))
{
fwrite(&c, sizeof(char), 1, output);
}
fclose(input);
fclose(output);
}