이 름
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일