一个嵌入式linux项目的流程以及rshell的介绍

这里写图片描述

流程图

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

int mz_epoll(void)
{
    int listenfd,socketfd;
    int epollfd,fds;
    struct epoll_event en,evevts[MAX_EVENTS]
    int i,rv;
    epollfd = get_server_epoll_fd();
    listenfd = ipv4_tcp_create_socket();
    ipv4_socket_nonblock(listenfd);
    rv =ipv4_epoll_add_event_by_fd(listenfd);
    if(rv < 0){
        return -1;
                }
    while(1){
        //timeout
        fds = epoll_wait(epollfd,events,MAX_EVENTS);
        if(fds < 0){
            if(errno == EINTR){
                    m_log(M_ERR,"skip Interrupted system call err.\n");
                    continue;
                            }
            m_log(M_ERR,"epoll_wait err:%s\n",strerror(errno));
            for(i = 0;i < fds;i++)
            {
                if(events[i].data.fd == listenfd)
                {
                    new_client_init(listenfd);
                    continue;
                }
                else
                {
                    m_log(LOG_DEBUG,"recv data.\n");
                    rv = process_data(events[i].fata.ptr);
                    if(rv == CLIENT_CLOSE)
                    {
                        rv = ipv4_epoll_delete_events(&envents[i]);
                        if(rv < 0)
                        {
                            m_log(LOG_DEBUG,"epoll delete error.\n");
                        }
                        continue;
                    }
                }
            }

                    }
            }
}






int main(int argc,char *argv[])
{
    server_init();
    mz_epoll();  
    ................
    .......................
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值