Libevent 학습 노트 (1) - Libevent 2.0 설치 및 간단 한 예제
오늘 은 주로 Libevent 의 설치 와 libevent 프레임 워 크 를 이용 하여 1s 간격 으로 Hello Libevent 를 인쇄 합 니 다!정보의 프로그램.
우선 설치: 1 libevent 소스 코드 다운로드, 주소 다운로드http://libevent.org/.제 가 다운로드 한 버 전 은 2.0 stable 버 전 이 고 다운로드 한 파일 형식 은 tar. gz 패키지 입 니 다.
2. 방금 다운로드 한 tar. gz 가방 의 부모 록 에 들 어가 tar - zxvf * *. tar. gz 를 실행 합 니 다.압축 을 풀 고 디 렉 터 리 에 들 어 갑 니 다.
3. 다음 명령 을 순서대로 실행 하면 설치 가 완 료 됩 니 다.
$ ./configure
$ make
$ make verify # (optional)
$ sudo make install
테스트 코드 의 프로 세 스 는 Reactor 인 스 턴 스 (event base) 를 만 드 는 이벤트 프로세서 - 이벤트 프로 세 서 를 등록 이벤트 목록 - 배포 이벤트 - 방출 시스템 자원 에 추가 하 는 것 입 니 다. 코드 는 다음 과 같 습 니 다.
#include <sys/signal.h>
#include <event.h>
struct event_base* base = NULL;
struct event* signal_event = NULL;
struct event* timeout_event = NULL;
timeval tv = {0,0};
void signal_cb (int fd, short event, void* argc)//
{
struct event_base* base = (event_base*) argc;// Reactor
struct timeval delay = { 2,0};// , 2s
printf("Caught an interrupt signal; exciting cleanly in two seconds...
");
event_base_loopexit (base,&delay);
}
void timeout_cb (int fd,short event, void* argc)
{
printf("Hello Libevent!
");
event_add(timeout_event,&tv);
}
int main()
{
event_base* base = event_init();// Reactor
signal_event = evsignal_new(base,SIGINT,signal_cb,base);// SIGINT
event_add(signal_event,NULL);//
tv.tv_sec = 1;
tv.tv_usec = 0;
timeout_event = evtimer_new(base,timeout_cb,NULL);//
event_add(timeout_event,&tv);//
event_base_dispatch(base);//
event_free(timeout_event);
event_free(signal_event);
event_base_free(base);
}
~
프로그램 실행 결과 캡 처
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
리눅스 입문~컴퓨터 시스템의 하드웨어의 개요와 리눅스의 주요 기능과 그 구조의 개요~별도의 기사에서 각 Linux의 기능인 프로세스 및 메모리 관리 메커니즘에 대한 자세한 내용을 요약합니다. 입력 장치, 네트워크 어댑터를 통해 컴퓨터에서 처리를 수행하도록 요청 프로세스 관리 메모리 관리 장치 조작 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.