Actualizar contenido de fichero
Publicado por SalvA (1 intervención) el 05/07/2007 10:29:29
Un dato a tener en cuenta es que estoy con OpenSuse 10.2, ya que lo que os pregunto a continuacion funciona a las mil maravillas con Windows.
Tengo un fichero el cual actualiza su contenido cada segundo, insertando datos al final del mismo en ese intervalo de tiempo; este es un fichero compartido, es decir, que se actualiza solo sin que yo ejecute na de na.
Cuando pretendo acceder a el para poder leerlo conforme se va actualizando, solo obtengo la primera posicion leida y no me sigue actualizando el puntero; hago lo siguiente solo para comprobar que si que incrementa su tamaño:
fseek(fid, 0, SEEK_END);
printf("Ultima posicion del registro: %d\n",ftell(fid));
, y esto lo hago en un bucle para que lo haga unas cuantas veces, por lo menos para que de tiempo a escribir 2 o 3 segundos.
Sin embargo, si mientras se ejecuta el codigo me voy al directorio y actualizo la carpeta donde se encuentra el fichero compartido, el resultado sale a la perfeccion; es como si no se actualizase el contenido del mismo hasta que no se recarga (con F5, un refresh de esos).
Tambien obtuve una solucion y era volviendo a reabrir el fichero antes de consultar su ultima posicion, pero claro, no es optimo ni de coña:
freopen("ubicacion", "r", fid);
¿Hay algun modo de solucionar esto mediante codigo o de alguna otra forma?
Gracias de antemano.
Tengo un fichero el cual actualiza su contenido cada segundo, insertando datos al final del mismo en ese intervalo de tiempo; este es un fichero compartido, es decir, que se actualiza solo sin que yo ejecute na de na.
Cuando pretendo acceder a el para poder leerlo conforme se va actualizando, solo obtengo la primera posicion leida y no me sigue actualizando el puntero; hago lo siguiente solo para comprobar que si que incrementa su tamaño:
fseek(fid, 0, SEEK_END);
printf("Ultima posicion del registro: %d\n",ftell(fid));
, y esto lo hago en un bucle para que lo haga unas cuantas veces, por lo menos para que de tiempo a escribir 2 o 3 segundos.
Sin embargo, si mientras se ejecuta el codigo me voy al directorio y actualizo la carpeta donde se encuentra el fichero compartido, el resultado sale a la perfeccion; es como si no se actualizase el contenido del mismo hasta que no se recarga (con F5, un refresh de esos).
Tambien obtuve una solucion y era volviendo a reabrir el fichero antes de consultar su ultima posicion, pero claro, no es optimo ni de coña:
freopen("ubicacion", "r", fid);
¿Hay algun modo de solucionar esto mediante codigo o de alguna otra forma?
Gracias de antemano.
Valora esta pregunta
0