linux timerfd_create 설명
4756 단어 server
#include
int timerfd_create(int clockid, int flags);
int timerfd_settime(int fd, int flags,
const struct itimerspec *new_value,
struct itimerspec *old_value);
int timerfd_gettime(int fd, struct itimerspec *curr_value);
일련의 타이머 와 관련 된 api 는 서로 다른 것 은 파일 설명 자 를 통 해 타이머 가 만 료 되 었 는 지 알려 주 는 것 입 니 다. Liux 의 모든 파일 이 생각 날 수 있 습 니 다. 파일 설명자 의 읽 기와 쓰기 상 태 를 통 해 이벤트 가 도 착 했 는 지 여 부 를 나타 내 면 select, poll, epoll 과 함께 먹 을 수 있 습 니 다.
timerfd_create()
타이머 대상 을 만 들 고 대상 을 가리 키 는 파일 설명 자 를 되 돌려 줍 니 다. clockid 매개 변 수 는 이 타이머 가 사용 하 는 시계 종 류 를 제한 합 니 다. CLOCK 이 어야 합 니 다.REALTIME 혹은 CLOCKMONOTONIC. CLOCK_REALTime 은 설정 가능 한 시스템 너비 입 니 다. CLOCKMONOTONIC 에서 설정 할 수 없 는 시 계 는 시스템 시간 변화 에 영향 을 받 지 않 습 니 다 (예: 인위적인 시스템 시간 변경). clockgettime 은 이 시계의 현재 값 을 가 져 올 수 있 습 니 다. Linux 2.6.27 부터 다음 값 은 timerfd 를 제어 하기 위해 flags 매개 변수 에 위치 하거나 접근 할 수 있 습 니 다.create () 행위: TFDNONBLOCK 설정 ONONBLOCK 파일 상태 표지 가 되 돌아 오 는 이 새 파일 설명자 입 니 다. fcntl 을 사용 하면 같은 효 과 를 얻 을 수 있 습 니 다. TFDCLOEXEC 는 close - on - exec (FD CLOEXEC) 로 고 를 파일 설명자 에 설정 합 니 다. fopen 의 O 참조CLOEXEC 로 고 는 어떤 용도 로 사용 되 는 지 설명 합 니 다. I 는 Linux versions up to and including 2.6.26, flags 는 0 이 어야 합 니 다.
timerfd_settime()
timerfd_settime() .
new_value . itimer , ,
timespec:
struct timespec {
time_t tv_sec; /* */
long tv_nsec; /* */
};
struct itimerspec {
struct timespec it_interval; /* */
struct timespec it_value; /* */
};
new_value.it_value , . new_value.it_value . new_value.it_value 0 .
new_value.it_interval , , . new_value.it_interval 0, , new_value.it_value .
flags 0 , (new_value.it_value clockid ), TFD_TIMER_ABSTIME ,
(new_value.it_value clockid ; , timer value new_value.it_value ).
old_value NULL,itimerspec ; timerfd_gettime() .
timerfd_gettime()
timerfd_gettime() , curr_value, itimerspec .
it_value . 0, . , TFD_TIMER_ABSTIME .
it_interval . 0, , curr_value.it_value .
시간 파일 설명자 에 대한 동작:
timerfd_create() :
read
timerfd_settime() , , buffer
8 (uint64_t) . ( , .)
, , EAGAIN ( fcntl F_SETFL O_NONBLOCK ).
EINVAL, buffer 8 .
poll, select 또는 비슷 한
(select readfds ; poll POLLIN ) .
APIs: pselect, ppoll, epoll.
ioctl
timerfd- :
TFD_IOC_SET_TICKS ( Linux 3.17 )
. 0 8 (uint64_t*) . , . checkpoint/restore. CONFIG_CHECKPOINT_RESTORE .
close
, . , .
fork 뒤의 의미
fork , , timerfd_create() . , .
execve 의 의미
timerfd_create() execve, .
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MVC의 심연를 보면 Trygve Reenskaug씨가 고안했다고 쓰여 있다. 뷰에 조작 오브젝트가 있는 경우와, 단순히 키보드나 마우스의 상태를 픽업하는 것을 고려하는 예이다. 그러나 잘 생각하면 이상하다. 예를 들어 키보드에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.