Libevent 학습 노트 (1) - Libevent 2.0 설치 및 간단 한 예제

오늘부터 Libevent 공부 해 요.Libevent 는 오픈 소스 커 뮤 니 티 의 고성능 I/O 프레임 워 크 라 이브 러 리 입 니 다.주요 특징 은 다음 과 같다. 1 크로스 플랫폼;2 통일 이벤트 원본 3 라인 보안 4 Reactor 기반
오늘 은 주로 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); } ~

프로그램 실행 결과 캡 처

좋은 웹페이지 즐겨찾기