2015-09-28 45 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()的結構中)。

這些是進程的默認值。檢查這個常量的值。