int fwrite(void * datos, int longitud, int longitud_unidad, FILE * archivo)


Retorna:

Tamaño escrito // Si se pudieron escribir todos los datos.
0 // Se produjo un error, o no se escribieron todos los datos. 

Descripción:

Esta función permite escribir datos en un archivo abierto con la función fopen(), a partir de la posición indicada por el puntero de lectura/escritura.

El archivo se debe haber abierto en un modo de escritura, o que la permita.

El puntero se sitúa inicialmente al comienzo del archivo, al abrirse o crearse el mismo, y avanza secuencialmente según se vayan escribiendo datos. No obstante puede situarse este puntero del archivo en cualquier posición, utilizando la función fseek() y la función ftell() permite obtener la posición actual del puntero de un archivo.

La función fwrite() requiere como primer parámetro el OFFSET de los datos que deben escribirse en el archivo, es decir,
la dirección de memoria.

Como segundo parámetro se requiere la longitud o tamaño total de los datos que se quieren escribir, es decir, el número de posiciones de memoria que ocupan dichos datos. La longitud de un dato se puede obtener con la función sizeof().

El tercer parámetro se requiere la longitud o tamaño de la unidad de datos, este parámetro se multiplicara por el segundo parámetro.

El último parámetro debe ser el handle o identificador de archivo que se obtuvo al abrir el archivo como valor de retorno de fopen().


int mitabla[4] = {11,22,33,44};
FILE * mihandle;

MAIN_PROGRAM_CDIV

BEGIN_PROGRAM

    mihandle = fopen("../help.dat","w");

    fwrite(tabla1, 4, 4, mihandle); // Escribe mitabla en el archivo

    fclose(mihandle);

END_PROGRAM

Este programa ejemplo escribe los datos contenidos en mitabla en el archivo help.dat del disco.

Se llama a la función fopen() para crearlo y a la función fclose() para cerrarlo una vez se han escrito los datos.

La función inversa a fwrite(), es decir, la que permite escribir datos en un archivo en lugar de leerlos, es fread(). La forma de utilizar esta función y sus parámetros son idénticos a los de fwrite().


Ver: fopen() - fread() - fseek()