本文共 1730 字,大约阅读时间需要 5 分钟。
1.下载 http://download.csdn.net/detail/sauphy/9314091 2. 编译 ./configure --prefix=/opt/libevent make make install 3. 开发编译 gcc test_signal.c -o ok -I/opt/libevent/include -L/opt/libevent/lib -levent ./ok 3-1、连接出错: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory A1、 ln -s /opt/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 4. 运行 ./okCtrl+C 运行(显示两个信号)
===============================
#include================#include #include #ifndef WIN32#include #include #include #else#include #include #endif#include #include #include #include #include #include #include #ifdef _EVENT___func__#define __func__ _EVENT___func__#endifint called = 0;static voidsignal_cb(evutil_socket_t fd, short event, void *arg){ struct event *signal = arg; printf("%s: got signal %d\n", __func__, EVENT_SIGNAL(signal)); if (called >= 2) event_del(signal); called++;}intmain(int argc, char **argv){ struct event signal_int; struct event_base* base;#ifdef WIN32 WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD(2, 2); (void) WSAStartup(wVersionRequested, &wsaData);#endif /* Initalize the event library */ base = event_base_new(); /* Initalize one event */ event_assign(&signal_int, base, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb, &signal_int); event_add(&signal_int, NULL); event_base_dispatch(base); event_base_free(base); return (0);}
CC = gccCXX = g++LD_FLAG = -gLIBS = -L/opt/libevent/lib -leventINCLUDES = -I/opt/libevent/includeTARGET = ok${TARGET}: $(CC) main.c $(LD_FLAG) $(LIBS) $(INCLUDES) -o $(TARGET) clean: rm -rf *.o *~ $(TARGET)
转载地址:http://vbvbi.baihongyu.com/