在c中多次读取/ proc / stats

时间:2013-04-28 20:40:38

标签: c linux operating-system

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

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

由于

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

或者你可以打开()/ read()/ seek,它完全绕过FILE / flush。