epoll_event的初级问题请教
刚学epoll,有些疑惑请教一下。
一、我如果使用如下:
sturct {
int fd;
char buffer[100];
int num;}task;
struct epoll_event events;
task.fd=accept(...).
events.data.ptr= &task;
epoll怎么确定我的描述符是fd还是num啦?
或者结构我完全可以定义成
sturct {
char aa[32];
int bb;
int fd;
char buffer[100];
int num;
}task;
epoll是怎么确定我这个结构中哪个元素是描述符的?
二、看资料说ET模式只支持no-block的fd。
但我在没有设置fd为阻塞模式的情况下,它好像也能正常使用。为什么啦?
一、我如果使用如下:
sturct {
int fd;
char buffer[100];
int num;}task;
struct epoll_event events;
task.fd=accept(...).
events.data.ptr= &task;
epoll怎么确定我的描述符是fd还是num啦?
或者结构我完全可以定义成
sturct {
char aa[32];
int bb;
int fd;
char buffer[100];
int num;
}task;
epoll是怎么确定我这个结构中哪个元素是描述符的?
二、看资料说ET模式只支持no-block的fd。
但我在没有设置fd为阻塞模式的情况下,它好像也能正常使用。为什么啦?
...全文
相关推荐
IO多路复用之epoll全面总结(必看篇)
**epoll接口** - **epoll_create()**: 这个函数用于创建一个epoll实例,返回一个文件描述符(epoll句柄)。
C++手搓Web服务器:从Socket到epoll,掌握高性能网络编程核心
网络编程是现代服务端开发的基石,其核心在于高效处理大量并发连接。I/O多路复用技术是实现这一目标的关键,它允许单个线程监控多个网络连接的状态变化,从而避免为每个连接创建独立线程的开销。在Linux环境下,epoll作为高性能的I/O事件通知机制,通过事件驱动模型显著提升了高并发场景下的处理能力。结合Reactor模式,可以将事件监听与业务逻辑解耦,构建出清晰且高效的服务架构。这种技术组合对于构建低延迟、高吞吐的在线服务具有重要价值,广泛应用于实时通信、API网关和微服务等场景。本文以C++实现一个Web服务
epoll使用详解
`epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)`:这个函数用于管理和修改 epoll 句柄中注册的事件。
epoll使用方法
u32; __uint64_t u64;} epoll_data_t;struct epoll_event { __uint32_t events; /* Epoll events */ epoll_data_t
Epoll模型详解
**2. epoll_ctl**```cint epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);```- **功能**:注册或修改监听事件


