Escribir fichero dejándolo accesible

Iniciado por DoHITB, 14 Noviembre 2020, 17:26 PM

0 Miembros y 1 Visitante están viendo este tema.

DoHITB

Buenas tardes:

Codifiqué un programa que genera un log. Como el log solo se escribe bajo petición, estoy intentando dejar el fichero accesible para abrir cuando no esté en uso, pero no encuentro la manera.

Ahora mismo, hago un fclose tras cada escritura, para no retener el fichero, pero igualmente al intentar abrir el fichero (con Windows) me da error indicando que el fichero está en uso por otro proceso.

¿Hay alguna manera en que pueda dejarlo accesible?


Gracias.


AlbertoBSD

Depende de como lo maneje el sistema operativo, ahorita mismo acabo de testear este código en windows 10,

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int main() {
char buffer[200];
FILE *archivo = fopen("archivo.txt","w");
fprintf(archivo,"Log....\n");
fgets(buffer,200,stdin); //Pausa
fclose(archivo);
}


Y aparece el archivo en el navegador mientras el programa se sigue ejecutando, pero si lo abro con el bloc de notas apare en blanco, no es si no hasta que terminó el programa y vuelvo a abrir el archivo este ya aparece con el texto "Log..." Pero no me marca error ni me dice que este ocupado antes de finalizar el programa.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

DoHITB

Hola!

Con el fclose bastaba... tenía mal una condición que hacía que se volviera a hacer un fopen de manera incorrecta!

PD: Te salta el fichero en blanco porque los datos siguen en el buffer, si pones un fflush(archivo) te saldrán :-)

Saludos y gracias por la ayuda!