我试图以固定的间隔(200ms)读取proc文件/ proc / stat,并且试图避免每次打开和关闭proc文件。

现在,由于proc文件没有与之关联的大小,因此fseek和rewind将不起作用。如果我错了,请纠正我。 (我记得有些proc文件确实具有与之相关的大小,但是/ proc / stat绝对没有一个)

重置读取指针以启动proc文件的正确方法是什么?

最佳答案

我发现rewind可以正常工作

#include <stdio.h>
int main() {
    FILE* fin = fopen("/proc/stat", "r");
    if (!fin) {
        perror("fopen");
        return -1;
        }
    char buf[16*1024];
    while(1) {
        rewind(fin);
        size_t sz = fread(buf, 1, sizeof(buf), fin);
        if (sz) {
            buf[sz]=0;
            printf(buf);
            }
        sleep(5);
        }
    return 0;
    }

关于c - 如何倒回proc文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28290909/

10-16 10:24