fwrite()

fwrite(<OFFSET datos>, <longitud>, <handle>)

Retorna:

0 - Se produjo un error, o no se escribieron todos los datos.
1 - Si se pudieron escribir 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 situa inicialmente al comienzo del archivo, al abrirse o crearse el mismo, y avanza secuencialmente según se vayan escribiendo datos. No obstánte 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 último parámetro debe ser el handle o identificador de archivo que se obtuvo al abrir el archivo como valor de retorno de fopen().

Programa ejemplo:
PROGRAM ejemplo_fwrite;

GLOBAL
    mitabla[3]=11,22,33,44;
    mihandle;

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

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

    fclose(mihandle);
END


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().


Nota: Por defecto, la <longitud> se especifica como el número de datos simples, teniendo en cuenta que un dato simple (una variable) ocupa 4 bytes. Es decir, que si por ejemplo, se escriben diez datos (indicando 10 como longitud), se estarán escribiendo cuarenta bytes.

Se puede cambiar esta relación modificando la variable global unit_size, que por defecto vale 4 en todos los programas.


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