Leyendo el archivo ya abierto continuamente usando C

Estoy implementando una aplicación de bajo peso donde tengo que abrir y leer los detalles / proc / pid o tid / task / stat muy a menudo. Si la aplicación es multiproceso, tengo que leer más archivos de estadísticas. Así que abrir, leer y cerrar hace que mi aplicación de monitoreo sea realmente lenta. ¿Existe una solución para evitar abrir el archivo repetidamente y poder leer el contenido actualizado?

Ejecuté el siguiente experimento pero no veo el éxito. Cambio los datos en "test.txt" pero los nuevos datos no se leen. ¿Es porque el archivo no está actualizado en la memoria? ¿Qué sucede cuando modifico y guardo "test.txt"?

#include <stdio.h>
int main()
{
    FILE * pFile;
    char mystring [100];
    pFile = fopen ("test.txt" , "r");
    while(1){
        if (pFile == NULL) perror ("Error opening file");
        if ( fgets (mystring , 100 , pFile) != NULL ){
            puts (mystring);
            fseek ( pFile , 0 , SEEK_SET );
        }
        sleep(1);
    }
    fclose (pFile);
    return 0;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta