当前位置: 技术问答>linux和unix
linux用c语言如何获得系统当前的进程数?
来源: 互联网 发布时间:2016-05-25
本文导语: 我用system调用外部命令ps -ef | wc -l 但效率太低,总是占用很多cpu. 现在倒是用opendir()打开/proc/ 然后数出名字为数字的目录,但觉得还是不太好 有没有什么更为高效的办法? | 我也没查到暂时的相文...
我用system调用外部命令ps -ef | wc -l
但效率太低,总是占用很多cpu.
现在倒是用opendir()打开/proc/ 然后数出名字为数字的目录,但觉得还是不太好
有没有什么更为高效的办法?
但效率太低,总是占用很多cpu.
现在倒是用opendir()打开/proc/ 然后数出名字为数字的目录,但觉得还是不太好
有没有什么更为高效的办法?
|
我也没查到暂时的相文函数.既然你是要LINUX下面写.何不写个SHELL来获得进程数,内存空闲数.再把数据处理为你需要的数据重定向到一个文件中.
C语言里面去读就行了.
关于内存查看,为df指令即可.
[/] df -h
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p2 20G 18G 227M 99% /
/dev/cciss/c0d2p5 114G 86G 22G 80% /app
/dev/cciss/c0d2p3 97G 79G 13G 87% /backup
/dev/cciss/c0d2p1 97G 22G 70G 24% /data
none 1.8G 0 1.8G 0% /dev/shm
[/]
C语言里面去读就行了.
关于内存查看,为df指令即可.
[/] df -h
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p2 20G 18G 227M 99% /
/dev/cciss/c0d2p5 114G 86G 22G 80% /app
/dev/cciss/c0d2p3 97G 79G 13G 87% /backup
/dev/cciss/c0d2p1 97G 22G 70G 24% /data
none 1.8G 0 1.8G 0% /dev/shm
[/]
|
楼主可以试试这个方法:
你先用vim直接打开/proc/。对的,我没写错,就是直接打开这个目录,然后你就能看到目录和文件有什么区别了
!目录是以/结尾的,每行一条,而文件不是,然后就有规律了。这样的话,就可以将遍历整个目录的问题转化成
了处理一个文件内内容的问题了
但是我不确定这个方法是不是会比遍历目录效率高,楼主可以试试看,然后把经验分享一下,呵呵
你先用vim直接打开/proc/。对的,我没写错,就是直接打开这个目录,然后你就能看到目录和文件有什么区别了
!目录是以/结尾的,每行一条,而文件不是,然后就有规律了。这样的话,就可以将遍历整个目录的问题转化成
了处理一个文件内内容的问题了
但是我不确定这个方法是不是会比遍历目录效率高,楼主可以试试看,然后把经验分享一下,呵呵