ctime(3) - wariua/manpages-ko GitHub Wiki

NAME

asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r - ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ถ„ํ•  ์‹œ๊ฐ„์ด๋‚˜ ASCII๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

SYNOPSIS

#include <time.h>

char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *buf);

char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *buf);

struct tm *gmtime(const time_t *timep);
struct tm *gmtime_r(const time_t *timep, struct tm *result);

struct tm *localtime(const time_t *timep);
struct tm *localtime_r(const time_t *timep, struct tm *result);

time_t mktime(struct tm *tm);

glibc ๊ธฐ๋Šฅ ํ™•์ธ ๋งคํฌ๋กœ ์š”๊ฑด (feature_test_macros(7) ์ฐธ๊ณ ):

asctime_r(), ctime_r(), gmtime_r(), localtime_r():
_POSIX_C_SOURCE
|| /* glibc ๋ฒ„์ „ <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

ctime(), gmtime(), localtime() ํ•จ์ˆ˜๋Š” ๋ชจ๋‘ ๋‹ฌ๋ ฅ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ time_t ์ธ์ž๋ฅผ ๋ฐ›๋Š”๋‹ค. ์ ˆ๋Œ€ ์‹œ๊ฐ„ ๊ฐ’์œผ๋กœ ํ•ด์„ํ•  ๋•Œ ๊ทธ ๊ฐ’์€ ์—ํฌํฌ, ์ฆ‰ 1970-01-01 00:00:00 +0000 (UTC) ์ดํ›„๋กœ ์ง€๋‚œ ์ดˆ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

asctime() ๋ฐ mktime() ํ•จ์ˆ˜๋Š” ๋ชจ๋‘ ๋ถ„ํ•  ์‹œ๊ฐ„, ์ฆ‰ ๋…„, ์›”, ์ผ ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ ์„œ ํ‘œํ˜„ํ•œ ์‹œ๊ฐ„ ์ธ์ž๋ฅผ ๋ฐ›๋Š”๋‹ค.

๋ถ„ํ•  ์‹œ๊ฐ„์€ tm ๊ตฌ์กฐ์ฒด์— ์ €์žฅํ•˜๋Š”๋ฐ, ๊ทธ ๊ตฌ์กฐ์ฒด๋Š” <time.h>์— ๋‹ค์Œ์ฒ˜๋Ÿผ ์ •์˜๋ผ ์žˆ๋‹ค.

struct tm {
    int tm_sec;    /* ์ดˆ (0-60) */
    int tm_min;    /* ๋ถ„ (0-59) */
    int tm_hour;   /* ์‹œ๊ฐ„ (0-23) */
    int tm_mday;   /* ์›” ์ค‘ ๋‚  ๋ฒˆํ˜ธ (1-31) */
    int tm_mon;    /* ์›” (0-11) */
    int tm_year;   /* ๋…„ - 1900 */
    int tm_wday;   /* ์ฃผ ์ค‘ ๋‚  ๋ฒˆํ˜ธ (0-6, ์ผ์š”์ผ = 0) */
    int tm_yday;   /* ์—ฐ ์ค‘ ๋‚  ๋ฒˆํ˜ธ (0-365, 1์›” 1์ผ = 0) */
    int tm_isdst;  /* ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„ */
};

tm ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

tm_sec
ํ•ด๋‹น ๋ถ„ ์ดํ›„์˜ ์ดˆ ์ˆ˜. ๋ณดํ†ต์€ 0์—์„œ 59๊นŒ์ง€ ๋ฒ”์œ„์ง€๋งŒ ์œค์ดˆ๋ฅผ ์œ„ํ•ด 60๊นŒ์ง€๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
tm_min
ํ•ด๋‹น ์‹œ ์ดํ›„์˜ ๋ถ„ ์ˆ˜. 0์—์„œ 59๊นŒ์ง€ ๋ฒ”์œ„.
tm_hour
์ž์ • ์ดํ›„์˜ ์‹œ๊ฐ„ ์ˆ˜. 0์—์„œ 23๊นŒ์ง€ ๋ฒ”์œ„.
tm_mday
์›” ์ค‘ ๋‚ ์งœ. 1์—์„œ 31๊นŒ์ง€ ๋ฒ”์œ„.
tm_mon
1์›” ์ดํ›„์˜ ๋‹ฌ ์ˆ˜. 0์—์„œ 11๊นŒ์ง€ ๋ฒ”์œ„.
tm_year
1900๋…„ ์ดํ›„์˜ ๋…„ ์ˆ˜.
tm_wday
์ผ์š”์ผ ์ดํ›„์˜ ๋‚  ์ˆ˜. 0์—์„œ 6๊นŒ์ง€ ๋ฒ”์œ„.
tm_yday
1์›” 1์ผ ์ดํ›„์˜ ๋‚  ์ˆ˜. 0์—์„œ 365๊นŒ์ง€ ๋ฒ”์œ„.
tm_isdst
๊ธฐ์ˆ ํ•œ ์‹œ๊ฐ„์— ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„์ด ์‹œํ–‰ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ. ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„์ด ์‹œํ–‰ ์ค‘์ด๋ฉด ๊ฐ’์ด ์–‘์ˆ˜์ด๊ณ , ์•„๋‹ˆ๋ฉด 0์ด๋ฉฐ, ๊ฐ€์šฉ ์ •๋ณด๊ฐ€ ์—†์œผ๋ฉด ์Œ์ˆ˜์ด๋‹ค.

ctime(t) ํ˜ธ์ถœ์€ asctime(localtime(t))์™€ ๋™๋“ฑํ•˜๋‹ค. ๋‹ฌ๋ ฅ ์‹œ๊ฐ„ t๋ฅผ ๋‹ค์Œ ํ˜•ํƒœ์˜ ๋„ ์ข…๋ฃŒ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พผ๋‹ค.

"Wed Jun 30 21:49:08 1993\n"

์š”์ผ ์ด๋ฆ„ ์ค„์ž„๋ง์€ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"์ด๋‹ค. ์›” ์ด๋ฆ„ ์ค„์ž„๋ง์€ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"์ด๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’์€ ์ •์ ์œผ๋กœ ํ• ๋‹น๋œ ๋ฌธ์ž์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์ด์–ด์ง€๋Š” ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ ๊ทธ ๋ฌธ์ž์—ด์„ ๋ฎ์–ด ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. ํ•จ์ˆ˜์—์„œ๋Š” ๋˜ํ•œ ์™ธ๋ถ€ ๋ณ€์ˆ˜ tzname, timezone, daylight(tzset(3) ์ฐธ๊ณ )์— ํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„ค์ •ํ•œ๋‹ค. ์žฌ์ง„์ž… ๊ฐ€๋Šฅ ๋ฒ„์ „์ธ ctime_r()์—์„œ๋Š” ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋ฒ„ํผ์— ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š”๋ฐ, ๊ทธ ๋ฒ„ํผ์—๋Š” ์ตœ์†Œ 26๋ฐ”์ดํŠธ์˜ ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. tzname, timezone, daylight์€ ์„ค์ •ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

gmtime() ํ•จ์ˆ˜๋Š” ๋‹ฌ๋ ฅ ์‹œ๊ฐ„ timep๋ฅผ ํ˜‘์ • ์„ธ๊ณ„์‹œ(UTC)๋กœ ๋‚˜ํƒ€๋‚ธ ๋ถ„ํ•  ์‹œ๊ฐ„ ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์—ฐ๋„๋ฅผ ์ •์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†์œผ๋ฉด NULL์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’์€ ์ •์ ์œผ๋กœ ํ• ๋‹น๋œ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์ด์–ด์ง€๋Š” ๋‚ ์งœ ๋ฐŽ ์‹œ๊ฐ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ ๊ทธ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฎ์–ด ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. gmtime_r() ํ•จ์ˆ˜๋Š” ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๊ตฌ์กฐ์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

localtime() ํ•จ์ˆ˜๋Š” ๋‹ฌ๋ ฅ ์‹œ๊ฐ„ timep๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ • ์‹œ๊ฐ„๋Œ€ ๊ธฐ์ค€์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋ถ„ํ•  ์‹œ๊ฐ„ ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” tzset(3)์„ ํ˜ธ์ถœํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘์šฉํ•œ๋‹ค. ์ฆ‰ ์™ธ๋ถ€ ๋ณ€์ˆ˜ tzname์— ํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„ค์ •ํ•˜๊ณ , timezone์— ํ˜‘์ • ์„ธ๊ณ„์‹œ(UTC)์™€ ์ง€์—ญ ํ‘œ์ค€์‹œ์˜ ์ดˆ ๋‹จ์œ„ ์ฐจ์ด๋ฅผ ์„ค์ •ํ•˜๋ฉฐ, ๊ทธ ํ•ด์˜ ์ผ๋ถ€ ์‹œ๊ธฐ ๋™์•ˆ ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„ ๊ทœ์น™์ด ์ ์šฉ๋˜๋Š” ๊ฒฝ์šฐ daylight์— 0 ์•„๋‹Œ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’์€ ์ •์ ์œผ๋กœ ํ• ๋‹น๋œ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์ด์–ด์ง€๋Š” ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ ๊ทธ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฎ์–ด ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. localtime_r() ํ•จ์ˆ˜๋Š” ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๊ตฌ์กฐ์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. tzname, timezone, daylight์€ ์„ค์ •ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

asctime() ํ•จ์ˆ˜๋Š” ๋ถ„ํ•  ์‹œ๊ฐ„ ๊ฐ’ tm์„ ctime()๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋„ ์ข…๋ฃŒ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’์€ ์ •์ ์œผ๋กœ ํ• ๋‹น๋œ ๋ฌธ์ž์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์ด์–ด์ง€๋Š” ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ ๊ทธ ๋ฌธ์ž์—ด์„ ๋ฎ์–ด ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. asctime_r() ํ•จ์ˆ˜๋Š” ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋ฒ„ํผ์— ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š”๋ฐ, ๊ทธ ๋ฒ„ํผ์—๋Š” ์ตœ์†Œ 26๋ฐ”์ดํŠธ์˜ ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

mktime() ํ•จ์ˆ˜๋Š” ์ง€์—ญ ์‹œ๊ฐ„์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋ถ„ํ•  ์‹œ๊ฐ„ ๊ตฌ์กฐ์ฒด๋ฅผ ๋‹ฌ๋ ฅ ์‹œ๊ฐ„ ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ํ˜ธ์ถœ์ž๊ฐ€ tm_wday ๋ฐ tm_yday ํ•„๋“œ๋กœ ์ œ๊ณตํ•œ ๊ฐ’์€ ๋ฌด์‹œํ•œ๋‹ค. tm_isdst ํ•„๋“œ์— ์ง€์ •ํ•œ ๊ฐ’์€ ๊ทธ tm ๊ตฌ์กฐ์ฒด๋กœ ์ œ๊ณตํ•˜๋Š” ์‹œ๊ฐ„์— ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„(DST)์ด ์‹œํ–‰ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ mktime()์— ์•Œ๋ ค ์ค€๋‹ค. ์–‘์ˆ˜ ๊ฐ’์€ DST๊ฐ€ ์‹œํ–‰ ์ค‘์ด๋ผ๋Š” ๋œป์ด๊ณ , 0์€ DST๊ฐ€ ์‹œํ–‰ ์ค‘์ด ์•„๋‹ˆ๋ผ๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Œ์ˆ˜ ๊ฐ’์€ ์ง€์ •ํ•œ ์‹œ๊ฐ„์— DST๊ฐ€ ์‹œํ–‰ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ mktime()์—์„œ (์‹œ๊ฐ„๋Œ€ ์ •๋ณด์™€ ์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•ด) ์•Œ์•„๋‚ด๋ ค๊ณ  ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

mktime() ํ•จ์ˆ˜์—์„œ tm ๊ตฌ์กฐ์ฒด์˜ ํ•„๋“œ๋“ค์„ ๋ณ€๊ฒฝํ•œ๋‹ค. tm_wday ๋ฐ tm_yday๋ฅผ ๋‹ค๋ฅธ ํ•„๋“œ๋“ค์˜ ๋‚ด์šฉ์œผ๋กœ ์•Œ์•„๋‚ธ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„๊ฐ€ ์œ ํšจ ๊ตฌ๊ฐ„ ๋ฐ–์— ์žˆ์œผ๋ฉด ์ •๊ทœํ™” ํ•œ๋‹ค. (๊ทธ๋ž˜์„œ ๊ฐ€๋ น 10์›” 40์ผ์€ 11์›” 9์ผ๋กœ ๋ฐ”๋€๋‹ค.) ๊ทธ๋ฆฌ๊ณ  tm_isdst๋ฅผ (์›๋ž˜ ๊ฐ’๊ณผ ์ƒ๊ด€์—†์ด) ์ง€์ •ํ•œ ์‹œ๊ฐ„์— DST๊ฐ€ ์‹œํ–‰ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋„๋ก ์–‘์ˆ˜ ๊ฐ’ ๋˜๋Š” 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. ๋˜ํ•œ mktime()์—์„œ๋Š” ์™ธ๋ถ€ ๋ณ€์ˆ˜ tzname์„ ํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ๋Œ€ํ•œ ์ •๋ณด๋กœ ์„ค์ •ํ•œ๋‹ค.

์ง€์ •ํ•œ ๋ถ„ํ•  ์‹œ๊ฐ„์„ ๋‹ฌ๋ ฅ ์‹œ๊ฐ„(์—ํฌํฌ ์ดํ›„ ์ดˆ)์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ mktime()์€ (time_t) -1์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ๋ถ„ํ•  ์‹œ๊ฐ„ ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„๋“ค์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

RETURN VALUE

์„ฑ๊ณต ์‹œ gmtime() ๋ฐ localtime()์€ struct tm ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์„ฑ๊ณต ์‹œ gmtime_r() ๋ฐ localtime_r()์€ result๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ตฌ์กฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์„ฑ๊ณต ์‹œ asctime() ๋ฐ ctime()์€ ๋ฌธ์ž์—ด ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์„ฑ๊ณต ์‹œ asctime_r() ๋ฐ ctime_r()์€ buf๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์„ฑ๊ณต ์‹œ mktime()์€ time_t ํƒ€์ž… ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•œ ๋‹ฌ๋ ฅ ์‹œ๊ฐ„(์—ํฌํฌ ์ดํ›„ ์ดˆ ์ˆ˜)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์˜ค๋ฅ˜ ์‹œ mktime()์€ (time_t) -1 ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‚˜๋จธ์ง€ ํ•จ์ˆ˜๋“ค์€ ์˜ค๋ฅ˜ ์‹œ NULL์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์˜ค๋ฅ˜ ์‹œ ์˜ค๋ฅ˜ ์›์ธ์„ ๋‚˜ํƒ€๋‚ด๋„๋ก errno๋ฅผ ์„ค์ •ํ•œ๋‹ค.

ERRORS

EOVERFLOW
๊ฒฐ๊ณผ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.

ATTRIBUTES

์ด ์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์€ attributes(7)๋ฅผ ๋ณด๋ผ.

์ธํ„ฐํŽ˜์ด์Šค ์†์„ฑ ๊ฐ’
asctime() ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Unsafe race:asctime locale
asctime_r() ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Safe locale
ctime() ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Unsafe race:tmbuf
race:asctime env locale
ctime_r(),
gmtime_r(),
localtime_r(),
mktime()
์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Safe env locale
gmtime(),
localtime()
์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Unsafe race:tmbuf env locale

CONFORMING TO

POSIX.1-2001. C89 ๋ฐ C99์—์„œ asctime(), ctime(), gmtime(), localtime(), mktime()์„ ๋ช…์„ธํ•˜๊ณ  ์žˆ๋‹ค. POSIX.1-2008์—์„œ asctime(), asctime_r(), ctime(), ctime_r()์„ ๊ตฌ์‹์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋Œ€์‹  strftime(3)์„ ์“ฐ๊ธฐ๋ฅผ ๊ถŒํ•˜๊ณ  ์žˆ๋‹ค.

NOTES

๋„ค ํ•จ์ˆ˜ asctime(), ctime(), gmtime(), localtime()์€ ์ •์  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์Šค๋ ˆ๋“œ ์•ˆ์ „์ด ์•„๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ ์•ˆ์ „ ๋ฒ„์ „์ธ asctime_r(), ctime_r(), gmtime_r(), localtime_r()์„ SUSv2์—์„œ ๋ช…์„ธํ•œ๋‹ค.

POSIX.1-2001: "asctime(), ctime(), gmtime(), localtime() ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐ€์ง€ ์ •์  ๊ฐ์ฒด, ์ฆ‰ ๋ถ„ํ•  ์‹œ๊ฐ„ ๊ตฌ์กฐ์ฒด์™€ char ํƒ€์ž… ๋ฐฐ์—ด ์ค‘ ํ•˜๋‚˜๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋“ค ์ค‘ ์–ด๋А ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋“  ๋‹ค๋ฅธ ์–ด๋А ํ•จ์ˆ˜์—์„œ ๊ทธ ๊ฐ์ฒด๋“ค ์ค‘ ์–ด๋А ๊ฒƒ์œผ๋กœ๋“  ๋ฐ˜ํ™˜ํ•œ ์ •๋ณด๋ฅผ ๋ฎ์–ด ์“ธ ์ˆ˜ ์žˆ๋‹ค." glibc ๊ตฌํ˜„์—์„œ๋„ ๊ทธ๋Ÿด ์ˆ˜ ์žˆ๋‹ค.

glibc๋ฅผ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๊ตฌํ˜„์ฒด์—์„œ๋Š” tm_mday์˜ 0 ๊ฐ’์„ ์ „๋‹ฌ ๋งˆ์ง€๋ง‰ ๋‚ ์„ ๋œปํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•ด์„ํ•œ๋‹ค.

<time.h>๋ฅผ ํฌํ•จํ•˜๊ธฐ ์ „์— _BSD_SOURCE๊ฐ€ ์„ค์ •๋ผ ์žˆ์œผ๋ฉด glibc ๋ฒ„์ „ struct tm์—๋Š” ๋‹ค์Œ ํ•„๋“œ๊ฐ€ ์ถ”๊ฐ€๋กœ ์ •์˜๋œ๋‹ค.

const char *tm_zone;      /* ์‹œ๊ฐ„๋Œ€ ์ถ•์•ฝ๋ช… */

์ด๋Š” 4.3BSD-Reno์— ์กด์žฌํ•˜๋Š” BSD ํ™•์žฅ์ด๋‹ค.

POSIX.1-2004์— ๋”ฐ๋ฅด๋ฉด localtime()์€ tzset(3)์ด ํ˜ธ์ถœ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•ด์•ผ ํ•˜๋Š” ๋ฐ˜๋ฉด localtime_r()์—๋Š” ๊ทธ๋Ÿฐ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์—†๋‹ค. ์ด์‹ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ์—์„œ๋Š” localtime_r()์— ์•ž์„œ tzset(3)์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค.

SEE ALSO

date(1), gettimeofday(2), time(2), utime(2), clock(3), difftime(3), strftime(3), strptime(3), timegm(3), tzset(3), time(7)


2019-03-06

โš ๏ธ **GitHub.com Fallback** โš ๏ธ