当前位置: 技术问答>linux和unix
linux C语言 如何获取系统可用内存?
来源: 互联网 发布时间:2016-09-20
本文导语: 在程序中获取当前可用内存,有没有好的方法? 我想的一个办法是调用system函数,如下 system("free -m"); 这样会在当前进程的屏幕上打印如下结果: total used free shared ...
在程序中获取当前可用内存,有没有好的方法?
我想的一个办法是调用system函数,如下
system("free -m");
这样会在当前进程的屏幕上打印如下结果:
total used free shared buffers cached
Mem: 1938 1474 464 0 91 806
-/+ buffers/cache: 575 1362
Swap: 999 0 999
现在我想的是将输出的结果中的可用内存大小重定向到当前程序中的某个变量里面,不知道怎么实现阿?
我用 system("free -m > stdin") 实现不了,不知道哪个大侠能试试看一下?
当然有更简洁的方法能获取当前可用内存大小,那就更好拉!
我想的一个办法是调用system函数,如下
system("free -m");
这样会在当前进程的屏幕上打印如下结果:
total used free shared buffers cached
Mem: 1938 1474 464 0 91 806
-/+ buffers/cache: 575 1362
Swap: 999 0 999
现在我想的是将输出的结果中的可用内存大小重定向到当前程序中的某个变量里面,不知道怎么实现阿?
我用 system("free -m > stdin") 实现不了,不知道哪个大侠能试试看一下?
当然有更简洁的方法能获取当前可用内存大小,那就更好拉!
|
访问proc文件吧,自己用system处理,重定向到文件,那个格式很难处理。
|
popen("free -m | awk 'NR==3{print $4}'","r");
读到数字后atoi就是了
读到数字后atoi就是了