1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | typedef struct { // 指向下一个事件信息的指针 void *ptr; // 事件ID int event_id; // 事件属性,指示事件是否活动等。 int event_propertiy; // 定义事件的数据内容 struct event_info info; // 事件处理例程,包括了数据信息和信道信息 int (int *)(*event_process*)(void *data_buff, void *channel_info); } event_table struct event_db { // 有效的事件数量 int event_num; // 事件列表 event_table *event; } |
1 2 3 4 5 6 7 8 9 10 11 12 | int rts; fd_set fdset; ...... rts = select(FD_SETSIZE,&fdset,NULL,NULL,NULL,0); if(rts > 0 ) { if(rts == ......) { /* 如果检测到I/O描述符为某一类型的描述符,则*/ ...... /* 将数据提交给事件执行模块 */ } else if(rts == ......) { ...... } } |
1 2 3 | int io_inner mkfifo(fifo_filename,mode) // 创建一个FIFO文件 io_inner = open(fifo_filename, mode); // 获得该文件描述符 |
1 | int sock = socket(......), |
1 | FD_SET(sock, &fdset); |
1 | rts = recv(sock, (void *) buff, ......) |
1 | rts = send(sock, (void *) buff, ......); |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |