epoll의 수평 촉발과 가장자리 촉발은 무엇입니까?두 단락의 코드를 철저히 이해하다.
9947 단어 기초 지식
수평 트리거
#include
#include
#include
int main()
{
int epfd, nfds;
char buf[256];
struct epoll_event event, events[5];
epfd = epoll_create(1);
event.data.fd = STDIN_FILENO;
event.events = EPOLLIN; // LT
epoll_ctl(epfd, EPOLL_CTL_ADD, STDIN_FILENO, &event);
while (1) {
nfds = epoll_wait(epfd, events, 5, -1);
int i;
for (i = 0; i < nfds; ++i) {
if (events[i].data.fd == STDIN_FILENO) {
read(STDIN_FILENO, buf, 1);
printf("hello world
");
}
}
}
}
결과:
# ./a.out
a
hello world
hello world
ab
hello world
hello world
hello world
abc
hello world
hello world
hello world
hello world
테두리 트리거
#include
#include
#include
int main()
{
int epfd, nfds;
struct epoll_event event, events[5];
char buf[256];
epfd = epoll_create(1);
event.data.fd = STDIN_FILENO;
event.events = EPOLLIN | EPOLLET;
epoll_ctl(epfd, EPOLL_CTL_ADD, STDIN_FILENO, &event);
while (1) {
nfds = epoll_wait(epfd, events, 5, -1);
int i;
for (i = 0; i < nfds; ++i) {
if (events[i].data.fd == STDIN_FILENO) {
read(STDIN_FILENO, buf, 1);
printf("hello world
");
}
}
}
}
결과:
# ./a.out
a
hello world
ab
hello world
abc
hello world
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Openssh 원격 연결 서버Openssh 원격 연결 서버 SSH(Secure Shell) 버전 정보 SSH2 작동 메커니즘 서버 sshd Ubuntu 설치 & 시작 CentOS 업데이트 & 시작 sshd가 프로세스에 있는지 확인 ssh 버전 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.