GETRLIMIT(2) | 리눅스 프로그래머 메뉴얼 | GETRLIMIT(2) |
이름¶
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는 적당한 값으로 설정된다.
에러¶
호환¶
SVr4, BSD 4.3
관련 항목¶
역자¶
정강훈 <skyeyes@soback.kornet.net>, 2000년 5월 12일
1993년 7월 23일 | 리눅스 |