我们经常会遇到一些需要读取/proc文件的东西...我们经常使用的free top ps w这些命令也正是读取的/proc文件系统,今天突然有个想法
我自己来读取/proc文件而不是用popen("free","r"),首先想到的肯定是参考free这些的源码,哈哈被我发现了,如此easy,系统已经很好的提供
了一个libproc,系统装好后,会存在一个/lib/libproc-x.x.x.so CentOS5.3就是(3.2.7)...这个so里就包含了我们要用的各种api,可惜
遗憾的是我并没有找到系统提供给我们的头文件.... 既然系统没有提供那么我们就自己动手丰衣足食了哦...
我自己来读取/proc文件而不是用popen("free","r"),首先想到的肯定是参考free这些的源码,哈哈被我发现了,如此easy,系统已经很好的提供
了一个libproc,系统装好后,会存在一个/lib/libproc-x.x.x.so CentOS5.3就是(3.2.7)...这个so里就包含了我们要用的各种api,可惜
遗憾的是我并没有找到系统提供给我们的头文件.... 既然系统没有提供那么我们就自己动手丰衣足食了哦...
下载procps-3.2.8.tar.gz也就是libproc-x.x.x.so的源程序... 这里procps-3.2.8/proc/下的.h就是我们想要的了, .c我们
是可以删除的.因为那个so里已经有了...
是可以删除的.因为那个so里已经有了...
问了方便我们可以ln -s /lib/libproc-3.2.7.so /lib/libproc.so
编译的时候如free.c就可以直接 gcc -Wall -o free -l proc
编译的时候如free.c就可以直接 gcc -Wall -o free -l proc
附件是我修改过之后的procps代码,我没有写Makefile 你需要什么自己编译...
ps目录下的 也可以直接 gcc -Wall -o ps 全部的.c
|
你可以在这个的基础上进一步的DIY,使得没有个源文件就是单一的源文件,根据自己的需求进一步修改.... open source就是好,我们的很多工作要做的仅仅是在现有的基础上进行一定的修改裁剪^_^