Manpages

이 름

getrlimit, getrusage, setrlimit − 자 원 (resource)의 제 한 값 과 사 용 값 을 알 아 내 거 나 설 정 한 다 .

사 용 법

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

int getrlimit (int resource, struct rlimit *rlim);
int getrusage (int
who, struct rusage *usage);
int setrlimit (int
resource, const struct rlimit *rlim);

설 명

getrlimitsetrlimit는 각 각 자 원 의 제 한 값 들 을 알 아 내 거 나 설 정 한 다 . resource는 다 음 중 하 나 여 야 한 다 :

RLIMIT_CPU

/* 초 단 위 의 CPU 시 간 */

RLIMIT_FSIZE

/* 최 대 파 일 크 기 */

RLIMIT_DATA

/* 최 대 데 이 타 크 기 */

RLIMIT_STACK

/* 최 대 스 택 크 기 */

RLIMIT_CORE

/* 최 대 코 어 파 일 크 기 */

RLIMIT_RSS

/* 최 대 거 주 집 합 크 기 */

RLIMIT_NPROC

/* 최 대 프 로 세 스 수 */

RLIMIT_NOFILE

/* 최 대 열 수 있 는 파 일 의 수 */

RLIMIT_MEMLOCK

/* 최 대 잠 긴 기 억 장 소 주 소 공 간 */

RLIMIT_AS

/* 주 소 공 간 (가 상 메 모 리 ) 제 한 값 */

만 일 RLIM_INFINITY로 설 정 되 었 다 면 자 원 은 무 제 한 이 다 . RLIMIT_OFILERLIMIT_NOFILE에 대 한 BSD 이 름 이 다 .

rlimit 구 조 체 는 다 음 과 같 다 :

struct rlimit
{

rlim_t

rlim_cur;

rlim_t

rlim_max;

};

getrusage는 현 재 자 원 의 사 용 값 을 반 환 한 다 . whoRUSAGE_SELFRUSAGE_CHILDREN 중 하 나 이 다 .

struct rusage
{

struct timeval ru_utime;

/* 사 용 된 사 용 자 시 간 */

struct timeval ru_stime;

/* 사 용 된 시 스 템 시 간 */

long

ru_maxrss;

/* 최 대 거 주 집 합 크 기 */

long

ru_ixrss;

/* 총 공 유 메 모 리 크 기 */

long

ru_idrss;

/* 공 유 되 지 않 은 총 데 이 타 크 기 */

long

ru_isrss;

/* 공 유 되 지 않 은 총 스 택 크 기 */

long

ru_minflt;

/* 페 이 지 반 환 (reclaims) */

long

ru_majflt;

/* 페 이 지 폴 트 */

long

ru_nswap;

/* 스 왑 */

long

ru_inblock;

/* 블 럭 입 력 연 산 */

long

ru_oublock;

/* 블 럭 출 력 연 산 */

long

ru_msgsnd;

/* 보 낸 메 세 지 */

long

ru_msgrcv;

/* 받 은 메 세 지 */

long

ru_nsignals;

/* 받 은 시 그 널 */

long

ru_nvcsw;

/* 자 발 적 인 문 맥 교 환 */

long

ru_nivcsw;

/* 비 자 발 적 인 문 맥 교 환 */

};

반 환 값

성 공 시 , 0이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 , errno는 적 당 한 값 으 로 설 정 된 다 .

에 러

EFAULT

rlimusage가 접 근 할 수 없 는 주 소 공 간 을 가 리 키 고 있 다 .

EINVAL

getrlimit또 는 setrlimit가 유 효 하 지 않 은 resource로 호 출 되 었 거 나 , getrusage가 유 효 하 지 않 은 who로 호 출 되 었 다 .

EPERM

비 -슈 퍼 유 저 가 소 프 트 제 한 값 과 하 드 제 한 값 을 현 재 의 하 드 제 한 값 보 다 높 은 값 으 로 증 가 시 키 기 위 해 setrlimit()를 사 용 하 였 거 나 , 슈 퍼 유 저 가 현 재 커 널 최 대 값 보 다 큰 값 으 로 RLIMIT_NOFILE을 변 경 하 려 고 시 도 했 다 .

호 환

SVr4, BSD 4.3

관 련 항 목

ulimit(2), quotactl(2)

역 자

정 강 훈 <skyeyes [AT] soback.net>, 2000년 5월 12일