我希望在几秒钟内多次读取/ proc / stats。作为一个例子,我会使用:
fp = fopen ("/proc/stats", "r");
while (1){
fseek(fp,0,SEEK_SET);
for(i=0 ; i<5 ; i++) {
fgets(buff, LINE_BUFFER, fp);
buff[strlen(buff)-1] = '\0'
printf("Line <%s>\n", buff);
}
sleep (0.2);
}
但显然我总是得到相同的价值。我是否需要关闭并重新打开文件以查看更改?
由于
答案 0 :(得分:4)
是的,你需要重新打开它。为避免竞争条件,大多数/ proc文件的内容在打开时修复。
答案 1 :(得分:0)
或者你可以打开()/ read()/ seek,它完全绕过FILE / flush。