2

我想在几秒钟内多次阅读 /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);
}

但显然我总是得到相同的值。我是否需要关闭并重新打开文件才能看到更改?

谢谢

4

2 回答 2

5

是的,您需要重新打开它。为了避免竞争条件,大多数 /proc 文件的内容在打开时是固定的。

于 2013-04-28T21:17:59.457 回答
0

或者你可以直接打开()/read()/seek,它完全绕过了文件/刷新。

于 2013-08-25T11:21:38.387 回答