2015-09-28 2 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 в обоих значениях. Должен ли я ожидать, что максимальная допустимая максимальная память max для текущего процесса?

+0

Значение RLIM_INFINITY не обозначает ограничение на ресурс (как в структуре , возвращаемой getrlimit(), так и в структуре, переданной setrlimit()). –

+0

Я использую RLIMIT_AS – Bionix1441

+0

@ DavidC.Rankin: OP не печатает возвращаемое значение вызова. –

ответ

2

Значение RLIM_INFINITY не обозначает ограничений по ресурсу (обе в структуре возвращены getrlimit() и в конструкции переданы setrlimit()).

Это значения по умолчанию для процесса. Проверьте значение этой константы.