如何倒带proc文件
how to rewind proc file
我正在尝试以固定间隔 (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;
}
我正在尝试以固定间隔 (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;
}