繁体   English   中英

如何读取procfs文件?

[英]How to read procfs file?

我尝试使用标准c函数读取/ proc / modules:

FILE *pfile;
int sz;
pfile = fopen( "/proc/modules", "r" );
fseek( pfile, 0, SEEK_END );
sz = ftell( pfile );
rewind( ftell );

但我的问题是ftell给我0值。 所以我无法读取文件的内容,因为我的长度为零。 有没有其他方法可以获得我想要阅读的文件的大小?

非常感谢。

不,它没有大小。 但是,您可以阅读部分内容,直到达到文件结尾。

/ proc文件是在您阅读它们时动态创建的,因此它们不能具有大小。

我纠正了。 有些/ proc文件确实有一定的大小,正如adobriyan在对Sjoerd的回答发表评论时指出的那样。 (那是Linux内核成名的Alexey Dobriyan吗?)

至于如何使用fgetc读取文件,这有效:

int c;
while ( (c = fgetc(pfile)) != EOF) {
    printf("%c",c);
}

而你的程序是segfaulting,因为你正试图倒带ftell。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM