<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 6.4 檢查事件狀態 有時候需要了解事件是否已經添加,檢查事件代表什么。 ```cpp int event_pending(const struct event *ev, short what, struct timeval *tv_out); #define event_get_signal(ev) /* ... */ evutil_socket_t event_get_fd(const struct event *ev); struct event_base *event_get_base(const struct event *ev); short event_get_events(const struct event *ev); event_callback_fn event_get_callback(const struct event *ev); void *event_get_callback_arg(const struct event *ev); int event_get_priority(const struct event *ev); void event_get_assignment(const struct event *event, struct event_base **base_out, evutil_socket_t *fd_out, short *events_out, event_callback_fn *callback_out, void **arg_out); ``` event_pending()函數確定給定的事件是否是未決的或者激活的。如果是,而且 what 參 數設置了 EV_READ、EV_WRITE、EV_SIGNAL 或者 EV_TIMEOUT 等標志,則函數會返回事件當前為之未決或者激活的所有標志 。如果提供了 tv_out 參數,并且 what 參數中設置了 EV_TIMEOUT 標志,而事件當前正因超時事件而未決或者激活,則 tv_out 會返回事件 的超時值。 event_get_fd()和 event_get_signal()返回為事件配置的文件描述符或者信號值。 event_get_base()返回為事件配置的 event_base。event_get_events()返回事件的標志(EV_READ、EV_WRITE 等)。event_get_callback()和 event_get_callback_arg() 返回事件的回調函數及其參數指針。 event_get_assignment()復制所有為事件分配的字段到提供的指針中。任何為 NULL 的參數會被忽略。 ###實例 ```cpp #include <event2/event.h> #include <stdio.h> /* Change the callback and callback_arg of 'ev', which must not be * pending. */ int replace_callback(struct event *ev, event_callback_fn new_callback, void *new_callback_arg) { struct event_base *base; evutil_socket_t fd; short events; int pending; pending = event_pending(ev, EV_READ|EV_WRITE|EV_SIGNAL|EV_TIMEOUT, NULL); if (pending) { /* We want to catch this here so that we do not re-assign a * pending event. That would be very very bad. */ fprintf(stderr, "Error! replace_callback called on a pending event!\n"); return -1; } event_get_assignment(ev, &base, &fd, &events, NULL /* ignore old callback */ , NULL /* ignore old callback argument */); event_assign(ev, base, fd, events, new_callback, new_callback_arg); return 0; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看