ejbm
2004-02-23 08:34:11 UTC
Al ejecutar el siguiente procedimiento obtengo este error del sistema
operativo: Bad memory image of FAT detected
El procedimiento es el tipico algoritmo para obtener un archivo con
los registros no borrados de otro. Da el error al escribir en el
archivo aux.
El error que genera aparte del de sistema operativo es Permission
denied. Tengo permisos de administrador en la máquina en la que
trabajo.
void compactar(FILE *archivo, FILE * aux)
{
tipo_cliente cliente;
archivo = fopen("c:/tc/ejemplos/archivo.dat","rb+");
aux = fopen("c:/tc/ejemplos/aux.dat","w");
fseek(aux,0L,0);
while (!feof(archivo))
{
if (fread(&cliente,sizeof(tipo_cliente),1,archivo))
if (!cliente.borrado)
{
fwrite(&cliente,sizeof(tipo_cliente),1,aux);
perror("Fallo ");
exit(0);
}
}
fclose(archivo);
fclose(aux);
unlink("c:/tc/ejemplos/archivo.dat");
rename("c:/tc/ejemplos/aux.dat","c:/tc/ejemplos/archivo.dat");
}
Un saludo
operativo: Bad memory image of FAT detected
El procedimiento es el tipico algoritmo para obtener un archivo con
los registros no borrados de otro. Da el error al escribir en el
archivo aux.
El error que genera aparte del de sistema operativo es Permission
denied. Tengo permisos de administrador en la máquina en la que
trabajo.
void compactar(FILE *archivo, FILE * aux)
{
tipo_cliente cliente;
archivo = fopen("c:/tc/ejemplos/archivo.dat","rb+");
aux = fopen("c:/tc/ejemplos/aux.dat","w");
fseek(aux,0L,0);
while (!feof(archivo))
{
if (fread(&cliente,sizeof(tipo_cliente),1,archivo))
if (!cliente.borrado)
{
fwrite(&cliente,sizeof(tipo_cliente),1,aux);
perror("Fallo ");
exit(0);
}
}
fclose(archivo);
fclose(aux);
unlink("c:/tc/ejemplos/archivo.dat");
rename("c:/tc/ejemplos/aux.dat","c:/tc/ejemplos/archivo.dat");
}
Un saludo