?struct epoll_event
一般是在 <sys/epoll.h>
頭文件中定義
struct epoll_event {
uint32_t events; // epoll 事件類型,包括可讀,可寫等
epoll_data_t data; // 用戶數(shù)據(jù),可以是一個指針或文件描述符等
};
其中,events
字段表示要監(jiān)聽的事件類型,可以是以下值之一:
-
EPOLLIN
:表示對應(yīng)的文件描述符上有數(shù)據(jù)可讀 -
EPOLLOUT
:表示對應(yīng)的文件描述符上可以寫入數(shù)據(jù) -
EPOLLRDHUP
:表示對端已經(jīng)關(guān)閉連接,或者關(guān)閉了寫操作端的寫入 -
EPOLLPRI
:表示有緊急數(shù)據(jù)可讀 -
EPOLLERR
:表示發(fā)生錯誤 -
EPOLLHUP
:表示文件描述符被掛起 -
EPOLLET
:表示將epoll設(shè)置為邊緣觸發(fā)模式 -
EPOLLONESHOT
:表示將事件設(shè)置為一次性事件
data
字段表示用戶數(shù)據(jù),它的類型是一個union,可以存放一個指針或文件描述符等數(shù)據(jù)。它的定義如下:文章來源:http://www.zghlxwxcb.cn/news/detail-661236.html
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
其中,ptr
可以指向任何類型的用戶數(shù)據(jù),fd
表示文件描述符,u32
和u64
分別表示一個32位和64位的無符號整數(shù)。使用時,用戶可以將自己需要的數(shù)據(jù)存放到這個字段中,當(dāng)事件觸發(fā)時,epoll系統(tǒng)調(diào)用會返回這個數(shù)據(jù),以便用戶處理事件。文章來源地址http://www.zghlxwxcb.cn/news/detail-661236.html
到了這里,關(guān)于epoll_event結(jié)構(gòu)體定義的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!