C/Visual C - Actualizar contenido de fichero

 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder