如何读取procfs文件?

我试着用标准的c函数读取/ proc / modules:

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

但我的问题是给我0的价值。 所以我无法读取文件的内容,因为我有一个零长度。 是否有另一种方法可以获得我想要读取的文件的大小?

非常感谢。

不,它没有尺寸。 但是,您可以读取它的部分内容,直到到达文件结尾。

/ proc文件是在读取它们时动态创建的,所以它们不能有大小。

我纠正了。 一些/ proc文件的确有一个大小,adobriyan已经注意到了对Sjoerd的回答。 (Linux coreel的Alexey Dobriyan是否有名?

至于如何使用fgetc来读取文件,这个工作:

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

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