Lendo arquivo já aberto continuamente usando C

Eu estou implementando um aplicativo de baixo peso, onde eu tenho que abrir e ler os detalhes / proc / pid ou tid / task / stat com muita freqüência. Se o aplicativo for multithreaded, preciso ler mais arquivos stat. Então, abrir, ler e fechar faz com que meu aplicativo de monitoramento fique muito lento. Existe uma solução para evitar a abertura do arquivo repetidamente e ainda capaz de ler o conteúdo atualizado?

Eu fiz o seguinte experimento, mas não vejo sucesso. Eu mudo os dados em "test.txt", mas os novos dados não são lidos. É porque o arquivo não está atualizado na memória? O que acontece quando eu modifico e salvo "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;
}

questionAnswers(2)

yourAnswerToTheQuestion