fwrite - escribe bytes en un archivo
#include <stdio.h>
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
Piensa en void * como representando la dirección del primer byte de cualquier tipo de datos. Piensa en size_t como un long.
Esta función escribe datos en un archivo que ha sido abierto a través de fopen. Espera como entrada:
ptr, que es la dirección (del primer byte) de la memoria desde donde leer los datos,size, que es el tamaño (en bytes) del tipo de datos a escribir,nmemb, que es el número de esos tipos para escribir de una vez, ystream, que es el puntero a un FILE devuelto por fopen.Por ejemplo, si se va a escribir un char a la vez, size sería sizeof(char) (es decir, 1), y nmemb sería 1.
Esta función devuelve el número de elementos escritos, que es igual al número de bytes escritos cuando size es 1.
Si ocurre un error o se alcanza el final del archivo, esta función puede devolver un valor menor que nmemb o incluso 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);
}