La Web del Programador: Comunidad de Programadores
 
    Pregunta:  26332 - COMO DUPLICAR .EXE MIENTRAS ESTA EN EJECUCION Y CAMBIAR LA R
Autor:  Martin Bueno
HOlas...

queria saber, si alguien me puede explicar como hacer para que Por Ej.
mi archivo c:\\arch.exe mientras esta en ejecución, se copie a c:\\DIR\\arch.exe
En C con Borland 4.51.

Desde ya, muchas gracias....

  Respuesta:  David Guerrero
Hola.

Realice unas pruebas y no encuentro ningún problema en copiar un archivo exe mientras se esta ejecutando. Para hacerlo, debes tener cuidado en abrir los archivos de forma correcta. La siguiente función te permite copiar archivos:

int copiaArchivo(char *origen, char* destino)
{
FILE *inFile, *outFile;
if( ( outFile = fopen(destino, "wb") ) == NULL)
{ printf("no se pudo abrir archivo de salida: '%s'\n",destino);
return 0;
}

if( ( inFile = fopen(origen, "rb") ) == NULL)
{
printf("no se pudo abrir archivo de entrada: '%s'\n",origen);
return 0;
}

unsigned char uchar;

while( fread(&uchar,1,1,inFile) == 1)fwrite(&uchar,1,1,outFile);

fclose(inFile);
fclose(outFile);

return 0;
}
Esta función la colocas en alguna parte de tu codigo para que sea llamada y los parametros origen y destino contienen las rutas que deseas utilizar.
Un ejemplo sería el siguiente:

copiaArchivo("c:\arch.exe","c:\DIR\arch.exe");