/proc/pid または tid/task/stat の詳細を頻繁に開いて読み取る必要がある軽量アプリケーションを実装しています。アプリケーションがマルチスレッドの場合、さらに多くの stat ファイルを読み取る必要があります。そのため、開いたり、読んだり、閉じたりすると、監視アプリケーションが非常に遅くなります。ファイルを繰り返し開くことを回避し、更新されたコンテンツを読み取ることができる解決策はありますか?
次の実験を実行しましたが、成功していません。「test.txt」のデータを変更しましたが、新しいデータが読み込まれません。ファイルがメモリ内で更新されていないためですか?"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;
}