网上的吃内存的例子,不实用,有的不符合要求,自己写了一个吃内存的c程序,这个程序用了两个进程,一个是吃内存的进程,另一个是专门打印内存使用情况的进程。一开始用一个进程,发现没有达到迅速吃内存的效果,可能其它的调用对内存的消耗产生了影响。
通过测试发现,这个程序,还是很实用的。
程序如下:
[root@server7 c]# cat eatMem.c
#include <stdio.h>
#include <stdlib.h>
void main()
{
int * a;
int i = 0;
char log[256] = {0};
system("> ./free.txt");
system("date >> ./free.txt");
system("free -m >> ./free.txt");
pid_t pid;
if ((pid = fork()) < 0 )
{
printf("fork error");
}
else if(pid == 0)
{
while(1)
{
i++;
a = (int *)malloc(1024*1024*100);
printf("allocation=%ldM a=%d \n",i*100,a);
}
}
else
{
while(1)
{
sleep(2);
system("date >> ./free.txt");
system("free -m >> ./free.txt");
}
}
}
[root@server7 c]#