getrusage, getrusage64, times 또는 vtimes 서브루틴
용도
리소스 사용에 대한 정보를 표시합니다.
라이브러리
getrusage, getrusage64, times: 표준 C 라이브러리libc.a
| 항목 | 설명 |
|---|---|
| vtimes: | Berkeley 호환성 라이브러리(libbsd.a) |
구문
#include <sys/times.h>
#include <sys/resource.h>
#include <sys/types.h>
#include <sys/times.h> struct tms *Buffer;
#include <sys/times.h>
설명
Getrusage 하위 루틴은 현재 프로세스 또는 완료된 모든 하위 프로세스에서 리소스를 사용하는 방식에 대한 정보를 표시합니다.
64비트 모드로 컴파일할 경우 러지 카운터는 64비트입니다. ' getrusage '이 32비트 모드로 컴파일된 경우 ' rusage ' 카운터는 32비트입니다. 커널의 사용량 카운터 값이 반환되는 해당 32비트 사용량 값의 용량을 초과한 경우 사용량 값은 INT_MAX로 설정됩니다.
getrusage64 서브루틴을 호출하여 32비트 환경에서 64비트 러시지 카운터를 명시적으로 사용할 수 있도록 만들 수 있습니다.
64비트 수량은 구조체 rusage의 ru_utime 및 ru_stime 필드에 있는 getrusage() 인터페이스를 통해서도 64비트 애플리케이션에서 사용할 수 있습니다.
Times 서브루틴은 Buffer 파라미터가 가리키는 구조를 시간 계산 정보로 채웁니다. 시간 서브루틴이 보고하는 모든 시간 값은 사용된 시계 틱 수로 측정됩니다. 애플리케이션은 sysconf(_SC_CLK_TCK)를 사용하여 초당 클럭 틱 수를 결정해야 합니다.
/usr/include/sys/times.h 파일에 정의된 tms 구조에는 다음 필드가 포함되어 있습니다:
time_t tms_utime; time_t tms_stime; time_t tms_cutime; time_t tms_cstime;이 정보는 호출 프로세스는 물론 호출 프로세스가 대기 서브루틴을 실행한 완료된 각 하위 프로세스에서 읽습니다.
| 항목 | 설명 |
|---|---|
| tms_utime | 호출 프로세스의 사용자 공간에서 명령어를 실행하는 데 사용되는 CPU 시간입니다 |
| tms_stime | 호출 프로세스를 대신하여 시스템에서 사용하는 CPU 시간입니다. |
| tms_cutime | 의 합계는tms_utime및tms_cutime값을 설정합니다. |
| tms_cstime | 의 합계는tms_stime및tms_cstime값을 설정합니다. |
이전 프로그램과의 호환성을 제공하기 위해 vtimes 하위 루틴이 지원됩니다.
Vtimes 하위 루틴은 현재 프로세스 및 현재 프로세스의 완료된 하위 프로세스에 대한 계정 정보를 반환합니다. ParentVm 매개변수, ChildVm 매개변수 또는 둘 다 0일 수 있습니다. 이 경우 0이 아닌 포인터에 대한 정보만 반환됩니다.
Vtimes 하위 루틴을 호출한 후 각 버퍼에는 /usr/include/sys/vtimes.h 파일의 내용에 정의된 대로 정보가 포함됩니다.
매개변수
| 항목 | 설명 |
|---|---|
| 누가 | RUSAGE_THREAD, RUSAGE_SELF 또는 RUSAGE_CHILDREN 값을 지정합니다. |
| RUsage | /usr/include/sys/resource.h 파일에 설명된 버퍼를 가리킵니다. 필드는 다음과 같이 해석됩니다:
|
| 버퍼 | Tms 구조를 가리킵니다 |
| ParentVm | 현재 프로세스에 대한 회계 정보가 포함된 vtimes 구조를 가리킵니다. |
| ChildVm | 현재 프로세스의 종료된 하위 프로세스에 대한 계정 정보가 포함된 vtimes 구조를 가리킵니다. |
리턴 값
성공적으로 완료되면 getrusage 및 getrusage64 서브루틴은 0 값을 반환합니다. 그렇지 않으면 -1 값이 반환되고 errno 전역 변수가 오류를 나타내도록 설정됩니다.
성공적으로 완료되면 시간 서브루틴은 프로파일링 활성화 여부에 관계없이 경과된 실시간 시간을 틱 단위로 반환합니다. 이 기준 시간은 시간 서브루틴을 호출할 때마다 변경되지 않습니다. Times 서브루틴이 실패하면 -1 값을 반환하고 errno 전역 변수를 설정하여 오류를 표시합니다.
오류 코드
| 항목 | 설명 |
|---|---|
| EINVAL | Who 매개 변수는 유효한 값이 아닙니다. |
| 기본값 | RUsage에 지정한 주소가 유효하지 않습니다. |
| 항목 | 설명 |
|---|---|
| 기본값 | 버퍼 매개변수로 지정한 주소가 유효하지 않습니다. |