我想运行一个设置了内存限制的进程(理想情况下也是数据段、堆栈和堆)我的代码看起来像
child = fork();
if ( child == 0 )
{
...
execv( program, args );
}
wait( &status );
并且这个结构应该是保存器,我用它做了一些事情(重定向标准输入/输出,测量执行时间等)
我的问题:如何为程序进程设置内存限制并让父母知道,如果超过了?进程不应该被sigsegv杀死,我想知道,进程被杀死只是因为这个内存限制。或者更好的是,有没有办法在这个过程完成时获得内存使用情况?该过程完成后,我可以比较最大使用内存。
我不能使用 valgrind(或类似的东西),因为我不能减慢执行时间。