• libevent 信号示例


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    #include <sys/types.h>
         
    #include <event2/event-config.h>
         
    #include <sys/stat.h>
    #ifndef WIN32
    #include <sys/queue.h>
    #include <unistd.h>
    #include <sys/time.h>
    #else
    #include <winsock2.h>
    #include <windows.h>
    #endif
    #include <signal.h>
    #include <fcntl.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <errno.h>
         
    #include <event.h>
         
    #ifdef _EVENT___func__
    #define __func__ _EVENT___func__
    #endif
         
    int called = 0;
         
    static void signal_cb(evutil_socket_t fd, short event, void *arg)
    {
        struct event *signal = arg;
         
        printf("%s: got signal %d ", __func__, EVENT_SIGNAL(signal));
         
        if (called >= 2)
        {
            event_del(signal);
        }
         
        called++;
    }
         
    int main(int argc, char **argv)
    {
        struct event signal_int;
        struct event_base* base;
         
        base = event_base_new();
        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;
    }

    这个信号示例是在Linux下测试的,程序执行时在键盘连续输入CTRL+C,打印如下:

    CTRL+CSIGINT,值为2

  • 相关阅读:
    Backbone学习记录(6)
    Backbone学习记录(5)
    Backbone学习记录(4)
    PHP中抽象类,接口定义
    php和js中json的编码和解码
    jquery中 dom对象与jQuery对象相互转换
    js post跳转
    javascript中的三种弹窗
    出现多个sessid
    php中cookie的操作
  • 原文地址:https://www.cnblogs.com/solohac/p/4154191.html
Copyright © 2020-2023  润新知