times(2) - wariua/manpages-ko GitHub Wiki

NAME

times - ν”„λ‘œμ„ΈμŠ€ μ‹œκ°„ μ–»κΈ°

SYNOPSIS

#include <sys/times.h>

clock_t times(struct tms *buf);

DESCRIPTION

times()λŠ” ν˜„μž¬ ν”„λ‘œμ„ΈμŠ€ μ‹œκ°„λ“€μ„ bufκ°€ κ°€λ¦¬ν‚€λŠ” struct tms에 μ €μž₯ν•œλ‹€. struct tmsλŠ” <sys/times.h>에 λ‹€μŒμ²˜λŸΌ μ •μ˜λΌ μžˆλ‹€.

struct tms {
    clock_t tms_utime;  /* μ‚¬μš©μž μ‹œκ°„ */
    clock_t tms_stime;  /* μ‹œμŠ€ν…œ μ‹œκ°„ */
    clock_t tms_cutime; /* μžμ‹λ“€μ˜ μ‚¬μš©μž μ‹œκ°„ */
    clock_t tms_cstime; /* μžμ‹λ“€μ˜ μ‹œμŠ€ν…œ μ‹œκ°„ */
};

tms_utime ν•„λ“œλŠ” 호좜 ν”„λ‘œμ„ΈμŠ€μ˜ μΈμŠ€νŠΈλŸ­μ…˜μ„ μ‹€ν–‰ν•˜λŠ” 데 μ“΄ CPU μ‹œκ°„μ„ λ‹΄λŠ”λ‹€. tms_stime ν•„λ“œλŠ” 호좜 ν”„λ‘œμ„ΈμŠ€ λŒ€μ‹  μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ©° 컀널 λ‚΄μ—μ„œ 싀행에 μ“΄ CPU μ‹œκ°„μ„ λ‹΄λŠ”λ‹€.

tms_cutime ν•„λ“œλŠ” tms_utime에닀가 μ’…λ£ŒλΌμ„œ λŒ€κΈ°κ°€ 이뀄진 μžμ‹λ“€ λͺ¨λ‘μ˜ tms_cutime을 ν•©μΉœ 값을 λ‹΄λŠ”λ‹€. tms_cstime ν•„λ“œλŠ” tms_stime에닀가 μ’…λ£ŒλΌμ„œ λŒ€κΈ°κ°€ 이뀄진 μžμ‹λ“€ λͺ¨λ‘μ˜ tms_cstime을 ν•©μΉœ 값을 λ‹΄λŠ”λ‹€.

μ’…λ£Œλœ μžμ‹λ“€μ˜ (그리고 κ·Έ ν›„μ†λ“€μ˜) μ‹œκ°„μ€ wait(2) λ‚΄μ§€ waitpid(2)μ—μ„œ ν”„λ‘œμ„ΈμŠ€ IDλ₯Ό λ°˜ν™˜ν•˜λŠ” μ‹œμ μ— 합쳐진닀. 특히 μžμ‹μ΄ λŒ€κΈ°ν•˜μ§€ μ•Šμ€ μ†μ£Όμ˜ μ‹œκ°„μ€ μ ˆλŒ€ 보이지 μ•Šκ²Œ λœλ‹€.

λͺ¨λ“  μ‹œκ°„μ„ 클럭 ν‹± λ‹¨μœ„λ‘œ λ³΄κ³ ν•œλ‹€.

RETURN VALUE

times()λŠ” κ³Όκ±° μž„μ˜ μ‹œμ  이후 κ²½κ³Όν•œ 클럭 ν‹± 수λ₯Ό λ°˜ν™˜ν•œλ‹€. λ°˜ν™˜ 값이 clock_t νƒ€μž…μ˜ κ°€λŠ₯ λ²”μœ„λ₯Ό λ„˜μ„ μˆ˜λ„ μžˆλ‹€. 였λ₯˜ μ‹œ (clock_t) -1을 λ°˜ν™˜ν•˜λ©° errnoλ₯Ό 적절히 μ„€μ •ν•œλ‹€.

ERRORS

EFAULT
tmsκ°€ ν”„λ‘œμ„ΈμŠ€μ˜ μ£Όμ†Œ 곡간 밖을 가리킀고 μžˆλ‹€.

CONFORMING TO

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

NOTES

μ΄ˆλ‹Ή 클럭 ν‹± μˆ˜λŠ” λ‹€μŒ λ°©λ²•μœΌλ‘œ 얻을 수 μžˆλ‹€.

sysconf(_SC_CLK_TCK);

POSIX.1-1996μ—μ„œλŠ” (<time.h>에 μ •μ˜λœ) CLK_TCK 심볼이 κ΅¬μ‹ν™”λ˜κ³  μžˆλ‹€κ³  λ§ν•œλ‹€. ν˜„μž¬ ꡬ식이 λ˜μ—ˆλ‹€.

λ¦¬λˆ…μŠ€ 컀널 버전 2.6.9 μ „μ—μ„œλŠ” SIGCHLD 처리 방식이 SIG_IGN으둜 섀정돼 μžˆλŠ” κ²½μš°μ— μ’…λ£Œν•œ μžμ‹λ“€μ˜ μ‹œκ°„μ΄ μžλ™μœΌλ‘œ tms_cstime 및 tms_cutime ν•„λ“œμ— ν¬ν•¨λœλ‹€. ν•˜μ§€λ§Œ POSIX.1-2001에 λ”°λ₯΄λ©΄ 호좜 ν”„λ‘œμ„ΈμŠ€κ°€ μžμ‹λ“€μ— wait(2) ν•˜λŠ” κ²½μš°μ—λ§Œ κ·Έλž˜μ•Ό ν•œλ‹€. λ¦¬λˆ…μŠ€ 2.6.9 및 μ΄ν›„μ—μ„œλŠ” 이 λΆˆμΌμΉ˜κ°€ μ‹œμ •λΌ μžˆλ‹€.

λ¦¬λˆ…μŠ€μ—μ„œλŠ” buf 인자λ₯Ό NULL둜 μ§€μ •ν•  수 있으며 그러면 times()κ°€ ν•¨μˆ˜ 결과만 λ°˜ν™˜ν•œλ‹€. ν•˜μ§€λ§Œ POSIXμ—μ„œλŠ” 이런 λ™μž‘μ„ λͺ…μ„Έν•˜κ³  μžˆμ§€ μ•ŠμœΌλ©° λŒ€λ‹€μˆ˜μ˜ λ‹€λ₯Έ μœ λ‹‰μŠ€ κ΅¬ν˜„μ—μ„œλŠ” buf에 NULL μ•„λ‹Œ 값을 μš”κ΅¬ν•œλ‹€.

참고둜 clock(3)도 clock_t νƒ€μž…μΈ 값을 λ°˜ν™˜ν•˜μ§€λ§Œ κ·Έ 값은 times()μ—μ„œ μ“°λŠ” 클럭 틱이 μ•„λ‹ˆλΌ CLOCKS_PER_SEC λ‹¨μœ„λ‘œ μΈ‘μ •ν•œ 값이닀.

λ¦¬λˆ…μŠ€μ—μ„œ times()의 λ°˜ν™˜ 값을 μΈ‘μ •ν•˜λŠ” 기쀀인 "κ³Όκ±° μž„μ˜ μ‹œμ "은 컀널 버전에 따라 λ‹¬λžλ‹€. λ¦¬λˆ…μŠ€ 2.4 및 μ΄μ „μ—μ„œλŠ” μ‹œμŠ€ν…œμ΄ λΆ€νŒ… 된 μˆœκ°„μ΄μ—ˆλ‹€. λ¦¬λˆ…μŠ€ 2.6λΆ€ν„°λŠ” 이 μ‹œμ μ΄ μ‹œμŠ€ν…œ λΆ€νŒ… μ‹œκ°μ—μ„œ (2^32/HZ) - 300 초 전이닀. 컀널 버전에 λ”°λ₯Έ (그리고 μœ λ‹‰μŠ€ κ΅¬ν˜„λ“€μ— λ”°λ₯Έ) 이런 닀양성에닀가 λ°˜ν™˜ 값이 clock_t의 λ²”μœ„λ₯Ό λ„˜μ„ 수 μžˆλ‹€λŠ” κ±Έ μƒκ°ν•˜λ©΄ 이식 κ°€λŠ₯ν•œ μ‘μš©μ—μ„œλŠ” 이 값을 μ“°μ§€ μ•ŠλŠ” 게 ν˜„λͺ…ν•  것이닀. κ²½κ³Ό μ‹œκ°„ λ³€ν™”λ₯Ό μΈ‘μ •ν•˜λ €λ©΄ clock_gettime(2)을 μ“°λ©΄ λœλ‹€.

이λ ₯

SVr1-3μ—μ„œλŠ” long을 λ°˜ν™˜ν•˜λ©° 에포크 이후 μ΄ˆκ°€ μ•„λ‹ˆλΌ 클럭 틱을 μ €μž₯ν•˜λŠ”λ°λ„ ꡬ쑰체 멀버가 time_t νƒ€μž…μ΄λ‹€. V7μ—μ„œλŠ” ꡬ쑰체 멀버에 long을 μΌλŠ”λ°, κ·Έλ•ŒλŠ” time_t νƒ€μž…μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ΄λ‹€.

BUGS

일뢀 μ‹œμŠ€ν…œ(특히 i386)μ—μ„œ λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ 호좜 κ·œμ•½μ˜ ν•œκ³„ λ•Œλ¬Έμ— λΆ€νŒ… μ§ν›„μ˜ 짧은 μ‹œκ°„(41초) λ™μ•ˆ times()κ°€ -1을 λ°˜ν™˜ν•΄μ„œ 였λ₯˜κ°€ λ°œμƒν•œ κ²ƒμ²˜λŸΌ 잘λͺ» 보이게 될 κ°€λŠ₯성이 μžˆλ‹€. λ°˜ν™˜ 값이 clock_t에 μ €μž₯ν•  수 μžˆλŠ” μ΅œλŒ“κ°’μ„ λ„˜μ–΄κ°ˆ λ•Œμ—λ„ 같은 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€.

SEE ALSO

time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️