[C con Clase] función remove()

Salvador Pozo salvador en conclase.net
Vie Sep 17 07:50:57 CEST 2010


El pasado 2010-09-16 21:48:56, yolmer escribió:
 
y> Saludos amigos de la lista
y> si pueden aclarar mi duda les agradeceré mucho
y> se trata de remove y tampoco funcionó con  DeleteFile

Hola:

El problema es simple: no cierras el fichero cuando lo creas en ningún punto del programa, y no es posible borrar un fichero abierto.

Cuando verificas si existe usas este código:

    FILE *temp;
    char letra;

    if(temp = fopen("temporal.agn","r"))
    {
          fclose(temp);
          MessageBox(hwnd,"Ya se está ejecutando el programa.\n","",MB_OK);
        return 0;
    }
    else
    {
        temp = fopen("temporal.agn","w");
    };

Como ves, si el fichero existe, lo cierras, muestras un mensaje de error y sales de la apliación. Pero si no existe, lo creas y continuas sin cerrarlo.

En ninguna otra parte del programa he visto referencias al fichero, salvo para intentar borrarlo. De hecho, no hace falta revisar, ya que temp es una variable local a main, y no se usa en el resto de la función.

Luego miraré entre la documentación, ya que existen medios más fiables de evitar que se ejecuten varias instancias de la misma aplicación. El método del fichero puede traer problemas si el programa termina de forma imprevista (por ejemplo, si se apaga el ordenador o se cae el sistema operativo.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase