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

NAME

timer_settime, timer_gettime - POSIX ํ”„๋กœ์„ธ์Šค๋ณ„ ํƒ€์ด๋จธ ์žฅ์ „/ํ•ด์ œ ๋ฐ ์ƒํƒœ ๊ฐ€์ ธ์˜ค๊ธฐ

SYNOPSIS

#include <time.h>

int timer_settime(timer_t timerid, int flags,
                  const struct itimerspec *new_value,
                  struct itimerspec *old_value);
int timer_gettime(timer_t timerid, struct itimerspec *curr_value);

-lrt๋กœ ๋งํฌ.

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

timer_settime(), timer_gettime():
_POSIX_C_SOURCE >= 199309L

DESCRIPTION

timer_settime()์€ timerid๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ํƒ€์ด๋จธ๋ฅผ ์žฅ์ „ํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•œ๋‹ค. new_value ์ธ์ž๋Š” ํƒ€์ด๋จธ์˜ ์ƒˆ ์ตœ์ดˆ ๊ฐ’๊ณผ ์ƒˆ ๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” itimerspec ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ด๋‹ค. itimerspec ๊ตฌ์กฐ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค.

struct timespec {
    time_t tv_sec;                /* ์ดˆ */
    long   tv_nsec;               /* ๋‚˜๋…ธ์ดˆ */
};

struct itimerspec {
    struct timespec it_interval;  /* ํƒ€์ด๋จธ ๊ฐ„๊ฒฉ */
    struct timespec it_value;     /* ์ตœ์ดˆ ๋งŒ๋ฃŒ */
};

itimerspec ๊ตฌ์กฐ์ฒด์˜ ํ•˜์œ„ ๊ตฌ์กฐ ๊ฐ๊ฐ์€ timespec ๊ตฌ์กฐ์ฒด์—ฌ์„œ ์‹œ๊ฐ„ ๊ฐ’์„ ์ดˆ์™€ ๋‚˜๋…ธ์ดˆ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. timer_create(2)๋กœ ํƒ€์ด๋จธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ง€์ •ํ•œ ํด๋Ÿญ์— ๋”ฐ๋ผ ์ด ์‹œ๊ฐ„ ๊ฐ’๋“ค์„ ์ธก์ •ํ•œ๋‹ค.

new_value->it_value๊ฐ€ 0 ์•„๋‹Œ ๊ฐ’์ด๋ฉด (์ฆ‰ ํ•œ ํ•˜์œ„ ํ•„๋“œ๋ผ๋„ 0์ด ์•„๋‹ˆ๋ฉด) timer_settime()์€ ๊ทธ ์‹œ๊ฐ„์— ์ตœ์ดˆ ๋งŒ๋ฃŒ๋˜๋„๋ก ์„ค์ •ํ•˜์—ฌ ํƒ€์ด๋จธ๋ฅผ ์žฅ์ „(์‹œ์ž‘)ํ•œ๋‹ค. (ํƒ€์ด๋จธ๊ฐ€ ์ด๋ฏธ ์žฅ์ „๋˜์–ด ์žˆ์œผ๋ฉด ์ด์ „ ์„ค์ •์„ ๋ฎ์–ด ์“ด๋‹ค.) new_value->it_value๊ฐ€ 0 ๊ฐ’์ด๋ฉด (์ฆ‰ ๋‘ ํ•˜์œ„ ํ•„๋“œ ๋ชจ๋‘ 0์ด๋ฉด) ํƒ€์ด๋จธ๋ฅผ ํ•ด์ œํ•œ๋‹ค.

new_value->it_interval ํ•„๋“œ๋Š” ์ดˆ์™€ ๋‚˜๋…ธ์ดˆ๋กœ ํƒ€์ด๋จธ์˜ ์ฃผ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ํ•„๋“œ๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด ์žฅ์ „๋œ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค new_value->it_interval์— ์ง€์ •ํ•œ ๊ฐ’์œผ๋กœ ํƒ€์ด๋จธ๋ฅผ ์žฌ์žฅ์ „ํ•œ๋‹ค. new_value->it_interval์ด 0 ๊ฐ’์ด๋ฉด it_value๋กœ ์ง€์ •ํ•œ ์‹œ๊ฐ„์— ํ•œ ๋ฒˆ๋งŒ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋œ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ new_value->it_value๋กœ ์ง€์ •ํ•˜๋Š” ์ตœ์ดˆ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์€ ํ˜ธ์ถœ ์‹œ์ ์— ํƒ€์ด๋จธ ํด๋Ÿญ์˜ ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ํ•ด์„ํ•œ๋‹ค. flags์— TIMER_ABSTIME์„ ์ง€์ •ํ•ด์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด new_value->it_value๋ฅผ ํƒ€์ด๋จธ ํด๋Ÿญ์—์„œ ์ธก์ •ํ•œ ์ ˆ๋Œ“๊ฐ’์œผ๋กœ ํ•ด์„ํ•œ๋‹ค. ์ฆ‰ ํด๋Ÿญ ๊ฐ’์ด new_value->it_value๋กœ ์ง€์ •ํ•œ ๊ฐ’์— ๋„๋‹ฌํ•  ๋•Œ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋œ๋‹ค. ์ง€์ •ํ•œ ์ ˆ๋Œ€ ์‹œ๊ฐ„์ด ์ด๋ฏธ ์ง€๋‚ฌ์œผ๋ฉด ํƒ€์ด๋จธ๊ฐ€ ์ฆ‰์‹œ ๋ฐœํ™”๋˜๋ฉฐ ์ดˆ๊ณผ ํšŸ์ˆ˜(timer_getoverrun(2) ์ฐธ๊ณ )๊ฐ€ ๊ทธ์— ๋งž๊ฒŒ ์„ค์ •๋œ๋‹ค.

CLOCK_REALTIME ํด๋Ÿญ ๊ธฐ๋ฐ˜์˜ ์ ˆ๋Œ“๊ฐ’ ํƒ€์ด๋จธ๊ฐ€ ์žฅ์ „๋˜์–ด ์žˆ๋Š” ๋™์•ˆ ๊ทธ ํด๋Ÿญ์˜ ๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํƒ€์ด๋จธ ๋งŒ๋ฃŒ๊ฐ€ ์ ์ ˆํžˆ ์กฐ์ •๋œ๋‹ค. CLOCK_REALTIME ํด๋Ÿญ ๊ธฐ๋ฐ˜์˜ ์ƒ๋Œ“๊ฐ’ ํƒ€์ด๋จธ์—๋Š” ํด๋Ÿญ ์กฐ์ •์ด ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

old_value๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด ๊ทธ ๋ฒ„ํผ๋ฅผ ์ด์šฉํ•ด ํƒ€์ด๋จธ์˜ ์ด์ „ ๊ฐ„๊ฒฉ(old_value->it_interval)๊ณผ ํƒ€์ด๋จธ๊ฐ€ ๋‹ค์Œ์œผ๋กœ ๋งŒ๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‚จ์•˜๋˜ ์‹œ๊ฐ„(old_value->it_value)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

timer_gettime()์€ timerid๋กœ ์ง€์ •ํ•œ ํƒ€์ด๋จธ์— ๋Œ€ํ•ด ๋‹ค์Œ ๋งŒ๋ฃŒ๊นŒ์ง€์˜ ์‹œ๊ฐ„๊ณผ ๊ฐ„๊ฒฉ์„ curr_value๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฒ„ํผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‹ค์Œ ํƒ€์ด๋จธ ๋งŒ๋ฃŒ๊นŒ์ง€ ๋‚จ์€ ์‹œ๊ฐ„์„ curr_value->it_value๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ํƒ€์ด๋จธ๋ฅผ ์žฅ์ „ํ•  ๋•Œ TIMER_ABSTIME ํ”Œ๋ž˜๊ทธ๋ฅผ ์ผ๋Š”์ง€์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ƒ๋Œ€์ ์ธ ๊ฐ’์ด๋‹ค. curr_value->it_value๋กœ ๋ฐ˜ํ™˜๋œ ๊ฐ’์ด 0์ด๋ฉด ํƒ€์ด๋จธ๊ฐ€ ํ˜„์žฌ ํ•ด์ œ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ํƒ€์ด๋จธ ๊ฐ„๊ฒฉ์€ curr_value->it_interval๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. curr_value->it_interval๋กœ ๋ฐ˜ํ™˜ํ•œ ๊ฐ’์ด 0์ด๋ฉด "๋‹จ๋ฐœ์„ฑ" ํƒ€์ด๋จธ์ธ ๊ฒƒ์ด๋‹ค.

RETURN VALUE

์„ฑ๊ณต ์‹œ timer_settime() ๋ฐ timer_gettime()์€ 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์˜ค๋ฅ˜ ์‹œ -1์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋„๋ก errno๋ฅผ ์„ค์ •ํ•œ๋‹ค.

ERRORS

์ด ํ•จ์ˆ˜๋“ค์€ ๋‹ค์Œ ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋‹ค.

EFAULT
new_value๋‚˜ old_value, curr_value๊ฐ€ ์œ ํšจํ•œ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค.
EINVAL
timerid๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š๋‹ค.

timer_settime()์€ ๋‹ค์Œ ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

EINVAL
new_value.it_value๊ฐ€ ์Œ์ˆ˜์ด๋‹ค. ๋˜๋Š” new_value.it_value.tv_nsec์ด ์Œ์ˆ˜์ด๊ฑฐ๋‚˜ 999,999,999๋ณด๋‹ค ํฌ๋‹ค.

VERSIONS

๋ฆฌ๋ˆ…์Šค 2.6๋ถ€ํ„ฐ ์ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋“ค์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

EXAMPLE

timer_create(2) ์ฐธ๊ณ .

SEE ALSO

timer_create(2), timer_getoverrun(2), time(7)


2017-09-15

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