alloc.h在linux中没有,比如用sbrk函数,要包含stdlib.h就可以
但也会发现没有coreleft函数的定义
可以通过查看/proc/meminfo来看未使用内存。
这个文件的前几行:
MemTotal: 502196 kB
MemFree: 38320 kB
Buffers: 18960 kB
Cached: 128100 kB
SwapCached: 49568 kB
具体代码如下:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <errno.h>
#include <string>
using namespace std;
int main(int argc,char** agrv)
{
FILE *fd;
char buff[256];
int total = 0;
int free = 0;
float use=0;
fd = fopen ("/proc/meminfo", "r");
fgets (buff, sizeof(buff), fd);
sscanf (buff, "%*s %d %*s", &total);
fgets (buff, sizeof(buff), fd);
sscanf (buff, "%*s %d %*s", &free);
use=(float)((total-free) /(total * 0.01));//百分比
fclose(fd);
cout<<"use:"<<use<<endl;
return 0;
}