이 름
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);
설 명
getrlimit와 setrlimit는 각 각 자 원 의 제 한 값 들 을 알 아 내 거 나 설 정 한 다 . 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_OFILE는 RLIMIT_NOFILE에 대 한 BSD 이 름 이 다 .
rlimit 구 조 체 는 다 음 과 같 다 :
struct rlimit
{
rlim_t |
rlim_cur; | |||
rlim_t |
rlim_max; |
};
getrusage는 현 재 자 원 의 사 용 값 을 반 환 한 다 . who는 RUSAGE_SELF나 RUSAGE_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 |
rlim나 usage가 접 근 할 수 없 는 주 소 공 간 을 가 리 키 고 있 다 . | ||
EINVAL |
getrlimit또 는 setrlimit가 유 효 하 지 않 은 resource로 호 출 되 었 거 나 , getrusage가 유 효 하 지 않 은 who로 호 출 되 었 다 . | ||
EPERM |
비 -슈 퍼 유 저 가 소 프 트 제 한 값 과 하 드 제 한 값 을 현 재 의 하 드 제 한 값 보 다 높 은 값 으 로 증 가 시 키 기 위 해 setrlimit()를 사 용 하 였 거 나 , 슈 퍼 유 저 가 현 재 커 널 최 대 값 보 다 큰 값 으 로 RLIMIT_NOFILE을 변 경 하 려 고 시 도 했 다 . |
호 환
SVr4, BSD 4.3
관 련 항 목
역 자
정 강 훈 <skyeyes [AT] soback.net>, 2000년 5월 12일