net-snmp代码分析之fd_event_manager.c
2010-06-27 22:36
429 查看
fd_event_manager.c模块主要作用管理读、写、异常文件描述符。
目录/net-snmp-5.4.2.1/snmplib/fd_event_manager.c
用于存储三种不同类型的描述符
int external_readfd[NUM_EXTERNAL_FDS], external_readfdlen = 0;
int external_writefd[NUM_EXTERNAL_FDS], external_writefdlen = 0;
int external_exceptfd[NUM_EXTERNAL_FDS], external_exceptfdlen = 0;
用于存储三种描述符对应的处理函数
void (*external_readfdfunc[NUM_EXTERNAL_FDS]) (int, void *);
void (*external_writefdfunc[NUM_EXTERNAL_FDS]) (int, void *);
void (*external_exceptfdfunc[NUM_EXTERNAL_FDS]) (int, void *);
存储需处理数据
void *external_readfd_data[NUM_EXTERNAL_FDS];
void *external_writefd_data[NUM_EXTERNAL_FDS];
void *external_exceptfd_data[NUM_EXTERNAL_FDS];
static int external_fd_unregistered;
相当于三个初始化函数,将函数中的参数分别赋给上述数据结构。
int
register_readfd(int fd, void (*func) (int, void *), void *data)
int
register_writefd(int fd, void (*func) (int, void *), void *data)
int
register_exceptfd(int fd, void (*func) (int, void *), void *data)
将指定的文件描述符从数据结构中删除
int
unregister_readfd(int fd)
int
unregister_writefd(int fd)
int
unregister_exceptfd(int fd)
将注册在数据结构的文件描述符添加到对应的文件描述符集中
void netsnmp_external_event_info(int *numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
测试在数据结构的文件描述符添加到对应的文件描述符集中是否有在三种描述符集中并调用对应的函数进行处理。
void netsnmp_dispatch_external_events(int *count, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
目录/net-snmp-5.4.2.1/snmplib/fd_event_manager.c
用于存储三种不同类型的描述符
int external_readfd[NUM_EXTERNAL_FDS], external_readfdlen = 0;
int external_writefd[NUM_EXTERNAL_FDS], external_writefdlen = 0;
int external_exceptfd[NUM_EXTERNAL_FDS], external_exceptfdlen = 0;
用于存储三种描述符对应的处理函数
void (*external_readfdfunc[NUM_EXTERNAL_FDS]) (int, void *);
void (*external_writefdfunc[NUM_EXTERNAL_FDS]) (int, void *);
void (*external_exceptfdfunc[NUM_EXTERNAL_FDS]) (int, void *);
存储需处理数据
void *external_readfd_data[NUM_EXTERNAL_FDS];
void *external_writefd_data[NUM_EXTERNAL_FDS];
void *external_exceptfd_data[NUM_EXTERNAL_FDS];
static int external_fd_unregistered;
相当于三个初始化函数,将函数中的参数分别赋给上述数据结构。
int
register_readfd(int fd, void (*func) (int, void *), void *data)
int
register_writefd(int fd, void (*func) (int, void *), void *data)
int
register_exceptfd(int fd, void (*func) (int, void *), void *data)
将指定的文件描述符从数据结构中删除
int
unregister_readfd(int fd)
int
unregister_writefd(int fd)
int
unregister_exceptfd(int fd)
将注册在数据结构的文件描述符添加到对应的文件描述符集中
void netsnmp_external_event_info(int *numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
测试在数据结构的文件描述符添加到对应的文件描述符集中是否有在三种描述符集中并调用对应的函数进行处理。
void netsnmp_dispatch_external_events(int *count, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
相关文章推荐
- net-snmp代码分析之fd_event_manager.c
- MXNet Storage代码分析
- NodeManager代码分析之NodeManager启动过程
- Android ActivityManagerService(AMS)的启动分析 << 代码讲的比较细致,在了解主要流程后再看这篇
- [Asp.net 5] DependencyInjection项目代码分析-目录
- 做GIS等值分析vb.net代码
- ASP.NET 数据绑定常用代码及其性能分析
- ASP.NET缓存方法分析和实践示例代码第1/2页
- 使用批处理实现启动和停止服务的代码分析(net start&net stop)
- Lighttpd1.4.20源码分析 笔记 fdevent系统-初始化
- <二>---RIL层代码分析---RIL_startEventLoop()->eventLoop()->ril_event_loop()
- VSM(Virtual Storage Manager) add new osd 代码分析
- 使用VS2010代码分析功能增强ASP.NET应用程序安全
- 基于QJM/Qurom Journal Manager/Paxos的HDFS HA原理及代码分析
- NodeManager代码分析之NodeManager启动过程
- Lighttpd1.4.20源码分析之fdevent系统(3) -----使用
- Lighttpd1.4.20源码分析之fdevent系统(4) -----连接socket的处理与超时处理
- ASP.NET MVC路由匹配检测组件的代码分析
- asp.net mvc 微信支付代码分析(根据沐雪微信平台3.1商城业务来分析)
- Lighttpd1.4.20源码分析 笔记 fdevent系统-连接socket及超时处理