Problema con Metodo Hash

Maniakz
05 de Noviembre del 2005
Estoy creando un programa el cual se guardan la informacion mediante un metodo hash. El problema es que no me lo respeta, si lo abro en modo at+, me manda al ultimo y si lo abro en "w" me lo destruye. Alguien sabe una manera para que no me destruya la informaci贸n respetandome el metodo hash? saludos.

C贸digo usado:

write ()
{
int hash;
FILE * archivo;
if((archivo = fopen ("archivo.txt", "at+"))==NULL)
puts ("ERROR");
else
{
rewind(archivo);
fflush(stdin);
hash=hashmod(libro.clave);
fseek(archivo, (hash*sizeof(libro)), SEEK_SET);
fwrite (&libro, sizeof(libro),1,archivo);
fclose (archivo);
}
return 0;
}