gettimeofday(2) - wariua/manpages-ko GitHub Wiki
gettimeofday, settimeofday - μκ° μ»κΈ°/μ€μ νκΈ°
#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
int settimeofday(const struct timeval *tv, const struct timezone *tz);glibc κΈ°λ₯ νμΈ λ§€ν¬λ‘ μ건 (feature_test_macros(7) μ°Έκ³ ):
-
settimeofday(): -
- glibc 2.19λΆν°:
_DEFAULT_SOURCE- glibc 2.19 λ° μ΄μ :
_BSD_SOURCE
gettimeofday() λ° settimeofday() ν¨μλ μκ°μ λν΄μ μκ°λλ₯Ό μ»κ±°λ μ€μ ν μ μλ€. tv μΈμλ (<sys/time.h>μ μλ) struct timevalμ΄λ©°,
struct timeval {
time_t tv_sec; /* μ΄ */
suseconds_t tv_usec; /* λ§μ΄ν¬λ‘μ΄ */
};μν¬ν¬(time(2) μ°Έκ³ ) μ΄νμ μ΄ λ° λ§μ΄ν¬λ‘μ΄ μλ₯Ό λνλΈλ€. tz μΈμλ struct timezoneμ΄λ€.
struct timezone {
int tz_minuteswest; /* 그리λμΉ μμͺ½μΌλ‘ λͺ λΆ */
int tz_dsttime; /* DST μμ μ’
λ₯ */
};tvλ tz μ€ μ΄λ μͺ½μ΄λΌλ NULLμ΄λ©΄ ν΄λΉ ꡬ쑰체λ₯Ό μ€μ λ΄μ§ λ°ννμ§ μλλ€. (νμ§λ§ tvκ° NULLμ΄λ©΄ μ»΄νμΌ κ²½κ³ κ° λκ² λλ€.)
timezone ꡬ쑰체 μ¬μ©μ ꡬμνλμλ€. 보ν΅μ tz μΈμλ₯Ό NULLλ‘ μ§μ νλ κ² μ’λ€. (μλ NOTES μ°Έκ³ .)
리λ
μ€μλ settimeofday() μμ€ν
νΈμΆκ³Ό κ΄λ ¨ν΄ μ’ λ
νΉν "ν΄λ μ곑" λμ λ°©μμ΄ μλ€. (λΆν
ν) μ΅μ΄ νΈμΆμμ tz μΈμκ° NULLμ΄ μλκ³ tz μΈμκ° NULLμ΄λ©΄μ tz_minuteswest νλκ° 0μ΄ μλ λμ λμμ΄λ€. (μ΄λ tz_dsttimeμ 0μΌλ‘ νλ κ² μ’λ€.) μ΄λ° κ²½μ°μλ CMOS ν΄λμ΄ μ§μ μκ°μ΄κ³ , κ±°κΈ°μ κ·Έλ§νΌ μκ°μ λν΄μΌ UTC μμ€ν
μκ°μ μ»μ μ μλ€κ³ μΉλ€. μ΄ κΈ°λ₯μ μ°μ§ μλ κ² μ’λ€λ λ°λ λλ§ν λμκ° μλ€.
gettimeofday()μ settimeofday()λ μ±κ³΅ μ 0μ λ°ννκ³ μ€ν¨ μ -1μ λ°ννλ€. (μ€ν¨ μ errnoμ μ μ ν μ€μ νλ€.)
EFAULT-
tvλtzμ€ νλκ° μ κ·Ό κ°λ₯ μ£Όμ κ³΅κ° λ°μ κ°λ¦¬ν¨λ€. EINVAL- (
settimeofday()):timezoneμ΄ μ ν¨νμ§ μλ€. EINVAL- (
settimeofday()):tv.tv_secμ΄ μμκ±°λtv.tv_usecμ΄ [0..999,999] λ²μ λ°μ΄λ€. -
EINVAL(리λ μ€ 4.3λΆν°) - (
settimeofday()): μκ°μCLOCK_MONOTONICν΄λμ νμ¬ κ°λ³΄λ€ μμ κ°μΌλ‘ μ€μ νλ € νλ€. (clock_gettime(2) μ°Έκ³ .) EPERM- νΈμΆ νλ‘μΈμ€μκ²
settimeofday()νΈμΆμ μν μΆ©λΆν νΉκΆμ΄ μλ€. 리λ μ€μμλCAP_SYS_TIMEμλ₯μ΄ νμνλ€.
SVr4, 4.3BSD. POSIX.1-2001μμλ gettimeofday()λ κΈ°μ νμ§λ§ settimeofday()λ κΈ°μ νκ³ μμ§ μλ€. POSIX.1-2008μμλ gettimeofday()λ₯Ό ꡬμμΌλ‘ νμνκ³ μμΌλ©° λμ clock_gettime(2) μ¬μ©μ κΆμ₯νλ€.
gettimeofday()κ° λ°ννλ μκ°μ (μμ€ν
κ΄λ¦¬μκ° μμ€ν
μκ°μ μλμΌλ‘ λ°κΎΈλ κ²½μ° κ°μ) λΆμ°μμ μμ€ν
μκ° λμ½μ μν₯μ λ°λλ€. λ¨μ‘° μ¦κ°νλ ν΄λμ΄ νμνλ€λ©΄ clock_gettime(2)μ 보λΌ.
timeval ꡬ쑰체λ₯Ό λ€λ£¨κΈ° μν λ§€ν¬λ‘λ€μ timeradd(3)μμ μ€λͺ
νλ€.
μ ν΅μ μΌλ‘ struct timevalμ νλλ€μ long νμ
μ΄μλ€.
μΌλΆ μν€ν
μ²μμλ vdso(7)μμ gettimeofday() ꡬνμ μ 곡νλ€.
리λ
μ€ μλ 컀λ μμμ glibcλ₯Ό μ°λ κ²½μ°μλ νμ¬ μκ°λμμ ν λ²μ΄λΌλ μΌκ΄ μ μ½ κ·μΉμ μ μ©ν μ μ΄ μκ±°λ μ μ©ν μμ μ΄λ©΄ gettimeofday()μμ struct timezoneμ tz_dsttime νλλ₯Ό 0 μλ κ°μΌλ‘ μ€μ νκ² λλ€. μ¦ νμ¬ μκ°λμ λν΄ daylight(3)μ μλ―Έλ₯Ό μ νν λ°μνλ€. 리λ
μ€ μμμ glibcλ₯Ό μ°λ κ²½μ°μλ settimeofday()λ gettimeofday()μμ struct timezoneμ tz_dsttime νλ μ€μ μ μ΄μ©ν μ μ΄ ν λ²λ μλ€. λ°λΌμ λ€μ λ΄μ©μ μμνκ² μμ¬μ κ΄μ¬μ¬μΌ λΏμ΄λ€.
μ€λλ μμ€ν
λ€μμ tz_dsttime νλμλ κ·Έ ν΄ μ΄λ μκΈ°μ μΌκ΄ μ μ½ μκ°μ΄ μνλλμ§ λνλ΄λ μ¬λ³Ό μμ(μλμ κ°λ€μ΄ μμ)κ° λ΄κΈ΄λ€. (μ°Έκ³ : μ΄ κ°μ νν΄ λ΄λ΄ κ³ μ λΌ μλ€. μ¦ DSTκ° μν μ€μμ λνλ΄λ κ² μλλΌ μκ³ λ¦¬μ¦μ μ μ ν λΏμ΄λ€.) λ€μ μΌκ΄ μ μ½ μκ° μκ³ λ¦¬μ¦λ€μ΄ μ μλΌ μλ€.
DST_NONE /* DST λΉμν */
DST_USA /* λ―Έκ΅ λ°©μ DST */
DST_AUST /* μ€μ€νΈλ μΌλ¦¬μ λ°©μ DST */
DST_WET /* μμ λ½ DST */
DST_MET /* μ€μ λ½ DST */
DST_EET /* λμ λ½ DST */
DST_CAN /* μΊλλ€ */
DST_GB /* μκ΅ */
DST_RUM /* 루λ§λμ */
DST_TUR /* ν°ν€ */
DST_AUSTALT /* μ€μ€νΈλ μΌλ¦¬μ 1986λ
λ³κ²½ λ°©μ */λΉμ°νκ²λ μΌκ΄ μ μ½ μκ° μν μκΈ°λ₯Ό λλΌλ§λ€ νλμ©μ λ¨μν μκ³ λ¦¬μ¦μΌλ‘ λνλΌ μλ μλ€λ κ² λλ¬λ¬λ€. μ€μ λ‘ κ·Έ μκΈ°λ μμΈ‘ λΆκ°λ₯ν μ μΉμ νλ¨μ λ°λΌ μ ν΄μ§λ€. κ·Έλμ μ΄λ κ² μκ°λλ₯Ό λνλ΄λ λ°©μμ λ²λ €μ‘λ€.
date(1), adjtimex(2), clock_gettime(2), time(2), ctime(3), ftime(3), timeradd(3), capabilities(7), time(7), vdso(7), hwclock(8)
2019-03-06