Чтение уже открытого файла непрерывно с помощью C

Я внедряю приложение с небольшим весом, где мне приходится очень часто открывать и читать подробности / proc / pid или tid / task / stat. Если приложение многопоточное, я должен прочитать больше файлов статистики. Таким образом, открытие, чтение и закрытие делают мое приложение мониторинга очень медленным. Есть ли решение, чтобы избежать повторного открытия файла и возможности прочитать обновленный контент?

Я провел следующий эксперимент, но я нене вижу успеха. Я изменяю данные в "test.txt» но новые данные не читаются. Это потому, что файл не обновляется в памяти? Что происходит, когда я изменяю и сохраняюtest.txt "?

#include 
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;
}

Ответы на вопрос(2)

Ваш ответ на вопрос