Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8180
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-20 13:38
个人简介

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules.

文章分类

全部博文(8)

文章存档

2015年(8)

我的朋友
最近访客

分类: C/C++

2015-02-09 12:18:09

/**************************
 *      epoll系统调用
 *************************/
 
 //穿件内核事件表,返回指向被创建表的文件描述符
 //作为其它epoll函数的第一个参数
 #include
 int epoll_create(int size)
 
 //epoll_ctl实现对内核事件表的操作
 int epoll_ctl(int epfd,int op,int fd,struct epoll_event *event)
 /*
    struct epoll_event{
        __uint32_t events;
        epoll_data_t data;
    };
    typedef union epoll_data{
        void* ptr;
        int fd;
        uint32_t u32;
        uint32_t u64;
    }epoll_data_t;
*/

//epoll系列系统调用的主要接口
//events指向输出epoll_wait检测到的就绪事件
int epoll_wait(int epfd,struct epoll_event* events,int maxevents,int timeout)
 
 int ret=poll(fds,MAX_EVENT_NUMBER,-1);
 for(int i=0;i     if(fds[i].revents & POLLIN){
        int sockfd=fds[i].fd;
        /*处理socket*/
        }
}

int ret=epoll_wait(epollfd,events,MAX_EVENT_NUMBER,-1);
for(int i=0;i     int soockfd=event[i].data.fd;
    /*直接处理socket*/
}
阅读(194) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~