Czytanie już otwartego pliku w sposób ciągły przy użyciu C

Wdrażam niską wagę aplikacji, w której bardzo często muszę otwierać i czytać dane / proc / pid lub tid / task / stat. Jeśli aplikacja jest wielowątkowa, muszę przeczytać więcej plików statystyk. Otwieranie, czytanie i zamykanie sprawia, że ​​moja aplikacja monitorująca działa naprawdę wolno. Czy istnieje rozwiązanie pozwalające uniknąć wielokrotnego otwierania pliku i wciąż w stanie odczytać zaktualizowaną zawartość?

Przeprowadziłem następujący eksperyment, ale nie widzę sukcesu. Zmieniam dane w „test.txt”, ale nowe dane nie są odczytywane. Czy to dlatego, że plik nie jest aktualizowany w pamięci? Co się stanie, gdy zmodyfikuję i zapisz „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