2015-09-28 46 views
-2

我想在Linux中获得当前进程的最大虚拟内存。我正在使用getrlimit()这个程序的输出是什么意思?

#include <stdio.h> 
#include <sys/time.h> 
#include <sys/resource.h> 

struct rlimit rlim; 
getrlimit(RLIMIT_AS,&rlim); 
printf("Soft limit %ld",rlim.rlim_cur); 
printf("Hard limit %ld",rlim.rlim_max); 

我在两个值中都得到-1。我不应该期望当前进程允许的虚拟内存最大值?

+0

值RLIM_INFINITY表示对资源(在由getrlimit()返回的 结构中以及在传递给 setrlimit())的结构中都没有限制。 –

+0

我正在使用RLIMIT_AS – Bionix1441

+0

@ DavidC.Rankin:OP不打印呼叫的返回值。 –

回答

2

RLIM_INFINITY表示对资源没有限制(在由getrlimit()返回的结构中以及在传递给setrlimit()的结构中)。

这些是进程的默认值。检查这个常量的值。