getrusage(2) - wariua/manpages-ko GitHub Wiki
getrusage - μμ μ¬μ©λ μ»κΈ°
#include <sys/time.h>
#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
getrusage()
λ λ€μ μ€ νλμΌ μ μλ who
μ λν΄ μμ μ¬μ©λ μΈ‘μ μΉλ₯Ό λ°ννλ€.
RUSAGE_SELF
- νΈμΆ νλ‘μΈμ€μ μμ μ¬μ© ν΅κ³λ₯Ό λ°ννλ€. νλ‘μΈμ€ λ΄ λͺ¨λ μ€λ λμ μμ μ¬μ© ν©κ³μ΄λ€.
RUSAGE_CHILDREN
- μ’ λ£λΌμ λκΈ°κΉμ§ μ΄λ€μ§ νΈμΆ νλ‘μΈμ€μ μμ λͺ¨λμ λν μμ μ¬μ© ν΅κ³λ₯Ό λ°ννλ€. μ¬μ΄μ νλ‘μΈμ€λ€μ΄ λͺ¨λ μ’ λ£λ μμμ λκΈ°λ₯Ό νμΌλ©΄ μμ μλ νμλ€μ΄ μ΄ μμκΉμ§ μ΄ ν΅κ³μ ν¬ν¨λλ€.
-
RUSAGE_THREAD
(리λ μ€ 2.6.26λΆν°) - νΈμΆ μ€λ λμ μμ μ¬μ© ν΅κ³λ₯Ό λ°ννλ€.
<sys/resource.h>μμ μ΄ μμ μ μλ₯Ό μ»μΌλ €λ©΄ (*μ΄λ€* ν€λλ ν¬ν¨μν€κΈ° μ μ)
_GNU_SOURCE
κΈ°λ₯ νμΈ λ§€ν¬λ‘κ° μ μλΌ μμ΄μΌ νλ€.
usage
κ° κ°λ¦¬ν€λ κ΅¬μ‘°μ²΄λ‘ μμ μ¬μ©λμ΄ λ°νλλ€. κ·Έ ꡬ쑰체λ λ€μ ννμ΄λ€.
struct rusage {
struct timeval ru_utime; /* μ¬μ©ν μ¬μ©μ CPU μκ° */
struct timeval ru_stime; /* μ¬μ©ν μμ€ν
CPU μκ° */
long ru_maxrss; /* μ΅λ μμ£Ό μ§ν© ν¬κΈ° */
long ru_ixrss; /* νμ 곡μ λ©λͺ¨λ¦¬ ν¬κΈ° */
long ru_idrss; /* νμ λΉκ³΅μ λ°μ΄ν° ν¬κΈ° */
long ru_isrss; /* νμ λΉκ³΅μ μ€ν ν¬κΈ° */
long ru_minflt; /* νμ΄μ§ μ¬νμ© (μ°μ± νμ΄μ§ ν΄νΈ) νμ */
long ru_majflt; /* νμ΄μ§ ν΄νΈ (κ²½μ± νμ΄μ§ ν΄νΈ) νμ */
long ru_nswap; /* μ€μ */
long ru_inblock; /* λΈλ‘ μ
λ ₯ λμ νμ */
long ru_oublock; /* λΈλ‘ μΆλ ₯ λμ νμ */
long ru_msgsnd; /* IPC λ©μμ§ μ μ‘ νμ */
long ru_msgrcv; /* IPC λ©μμ§ μμ νμ */
long ru_nsignals; /* μκ·Έλ μμ νμ */
long ru_nvcsw; /* μλ°μ λ¬Έλ§₯ μ ν νμ */
long ru_nivcsw; /* λΉμλ°μ λ¬Έλ§₯ μ ν νμ */
};
λͺ¨λ νλλ€μ΄ μ±μμ§μ§ μλλ€. λΉμ§μ νλλ€μ 컀λμμ 0μΌλ‘ μ€μ νλ€. (μ§μνμ§ μλλ° νλλ€μ μ 곡νλ 건 λ€λ₯Έ μμ€ν λ€κ³Όμ νΈνμ±μ μν΄μμ΄κΈ°λ νκ³ μΈμ κ° λ¦¬λ μ€μμ μ§μνκ² λ μλ μκΈ° λλ¬Έμ΄λ€.) λ€μκ³Ό κ°μ΄ νλλ€μ ν΄μνλ€.
ru_utime
- μ¬μ©μ λͺ¨λμμ μ€ννλ©° λ³΄λΈ μκ°μ μ΄λμ
timeval
κ΅¬μ‘°μ²΄λ‘ (μ΄μ λ§μ΄ν¬λ‘μ΄λ‘) ννν κ²μ΄λ€. ru_stime
- 컀λ λͺ¨λμμ μ€ννλ©° λ³΄λΈ μκ°μ μ΄λμ
timeval
κ΅¬μ‘°μ²΄λ‘ (μ΄μ λ§μ΄ν¬λ‘μ΄λ‘) ννν κ²μ΄λ€. -
ru_maxrss
(리λ μ€ 2.6.32λΆν°) - μ΅λλ‘ μ¬μ©ν μμ£Ό μ§ν© (ν¬λ‘λ°μ΄νΈ λ¨μ) ν¬κΈ°μ΄λ€.
RUSAGE_CHILDREN
μΈ κ²½μ° νλ‘μΈμ€ νΈλ¦¬μμ κ°μ₯ ν° μμ£Ό μ§ν© ν¬κΈ°κ° μλλΌ μμλ€ μ€ μ΅λ μμ£Ό μ§ν© ν¬κΈ°μ΄λ€. -
ru_ixrss
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
-
ru_idrss
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
-
ru_isrss
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
ru_minflt
- I/O νλ μμ΄ μ²λ¦¬ν νμ΄μ§ ν΄νΈ μ. μ¬ν λΉ λκΈ° νμ΄μ§ λͺ©λ‘μ νμ΄μ§ νλ μμ "μ¬νμ©"ν΄μ I/O νλμ νΌνλ€.
ru_majflt
- I/O νλμ΄ νμνλ μ²λ¦¬ νμ΄μ§ ν΄νΈ μ.
-
ru_nswap
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
-
ru_inblock
(리λ μ€ 2.6.22λΆν°) - νμΌ μμ€ν μμ μ λ ₯μ μνν΄μΌ νλ νμ.
-
ru_oublock
(리λ μ€ 2.6.22λΆν°) - νμΌ μμ€ν μμ μΆλ ₯μ μνν΄μΌ νλ νμ.
-
ru_msgsnd
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
-
ru_msgrcv
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
-
ru_nsignals
(λΉμ§μ) - νμ¬ λ¦¬λ μ€μμλ μ΄ νλλ₯Ό μ°μ§ μλλ€.
-
ru_nvcsw
(리λ μ€ 2.6λΆν°) - νμ μ¬λΌμ΄μ€κ° λλκΈ° μ μ (μΌλ°μ μΌλ‘ μμμ΄ μ¬μ© κ°λ₯ν΄μ§κΈ°λ₯Ό κΈ°λ€λ¦¬λ €κ³ ) νλ‘μΈμ€κ° μλ°μ μΌλ‘ νλ‘μΈμλ₯Ό ν¬κΈ°νμ¬ λ°μν λ¬Έλ§₯ μ ν νμ.
-
ru_nivcsw
(리λ μ€ 2.6λΆν°) - λ λμ μ°μ μμμ νλ‘μΈμ€κ° μ€ν κ°λ₯ν΄μ§κ±°λ νμ¬ νλ‘μΈμ€κ° νμ μ¬λΌμ΄μ€λ₯Ό μ΄κ³Όν΄μ λ°μν λ¬Έλ§₯ μ ν νμ.
μ±κ³΅ μ 0μ λ°ννλ€. μ€λ₯ μ -1μ λ°ννλ©° errno
λ₯Ό μ μ ν μ€μ νλ€.
EFAULT
-
usage
κ° μ κ·Ό κ°λ₯ν μ£Όμ κ³΅κ° λ°μ κ°λ¦¬ν€κ³ μλ€. EINVAL
-
who
κ° μ ν¨νμ§ μλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
getrusage() |
μ€λ λ μμ μ± | MT-Safe |
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. POSIX.1μμ getrusage()
λ₯Ό λͺ
μΈνκ³ λ μμ§λ§ ru_utime
λ° ru_stime
νλλ§ λͺ
μΈνλ€.
RUSAGE_THREAD
λ 리λ
μ€ μ μ©μ΄λ€.
execve(2)λ₯Ό κ±°μΉλ©΄μ μμ μ¬μ©λ μμΉλ€μ΄ 보쑴λλ€.
<sys/time.h>
λ₯Ό ν¬ν¨μν€λ κ² μμ¦μλ νμμΉ μμ§λ§ μ΄μμ±μ λμ¬ μ€λ€. (μ¬μ€ struct timeval
μ΄ <sys/time.h>
μ μ μλΌ μλ€.)
리λ
μ€ μ»€λ λ²μ 2.6.9 μ μμλ SIGCHLD
μ²λ¦¬ λ°©μμ΄ SIG_IGN
μΌλ‘ μ€μ λΌ μλ κ²½μ°μ μμ νλ‘μΈμ€μ μμ μ¬μ©λμ΄ μλμΌλ‘ RUSAGE_CHILDREN
λ°ν κ°μ ν¬ν¨λλ€. νμ§λ§ POSIX.1-2001μμλ μ΄λ₯Ό λͺ
νν κΈμ§νλ€. 리λ
μ€ 2.6.9 λ° μ΄νμμλ μ΄ λΆμΌμΉκ° μμ λΌ μλ€.
μ΄ νμ΄μ§ μμ λμ¨ κ΅¬μ‘°μ²΄ μ μλ 4.3BSD Renoμμ κ°μ Έμ¨ κ²μ΄λ€.
μμ£Ό μλ μμ€ν
λ€μμ getrusage()
μ μ©λκ° λΉμ·ν vtimes()
ν¨μλ₯Ό μ 곡νλ€. νμ νΈνμ±μ μν΄ glibcμμλ vtimes()
λ₯Ό μ 곡νλ€. μλ‘ μμ±νλ μμ©μ λͺ¨λ getrusage()
λ₯Ό μ°λλ‘ μμ±ν΄μΌ νλ€.
proc(5)μ /proc/[pid]/stat
μ€λͺ
λ μ°Έκ³ .
clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3)
2017-09-15