blob: b39e538f2a5c3c044b45372260bdd133d48eefb2 (
plain) (
tree)
|
|
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**
* mem.c -- Exhaust your memory
*
* This won't do what you expect on Linux if you don't have a ulimit set.
* Uncomment the memset(3) call at the end of the loop to fill the pointer if
* you really want to actually use the memory. Do you trust your OOM though?
*/
int main(void){
void *ptr = NULL;
unsigned long mb = 5;
for (;;mb += 5) {
fprintf(stderr, "%lu MB\n", mb);
if ((ptr = realloc(ptr, mb * 1000000)) == NULL) {
raise(SIGABRT);
}
/* memset(ptr, 0, mb * 1000000); */
}
}
|