select返回值可以这样子优雅编程

以前的代码:

void Select()
{
    fd_set  fdSet;
    static struct timeval tv;
    tv.tv_sec=0;
    tv.tv_usec = 500000;//采用select每500毫秒轮询一次查询是否有WEB写入FIFO的告警
    FD_ZERO(&fdSet);
    FD_SET(m_fd,&fdSet);
    int nSelectRet=select((m_fd+1),&fdSet,NULL,NULL,&tv);
    if(nSelectRet<0)
    {
        perror("select");
    }
    else
    {
        if(nSelectRet>0)
        {
            if(FD_ISSET(m_fd,&fdSet))
            {
                do_something();
            }
        }
    }
}
修改之后的代码:

void Select()
{
    fd_set  fdSet;
    static struct timeval tv;
    tv.tv_sec=0;
    tv.tv_usec = 500000;//采用select每500毫秒轮询一次查询是否有WEB写入FIFO的告警
    FD_ZERO(&fdSet);
    FD_SET(m_fd,&fdSet);
    int nSelectRet=select((m_fd+1),&fdSet,NULL,NULL,&tv);
    if(nSelectRet<0)
    {
        perror("select");
        return ;
    }

if(nSelectRet==0)
    {
        return ;
    }

if(FD_ISSET(m_fd,&fdSet))
      {
                do_something();
       }
}

看起来工整多了

select返回值可以这样子优雅编程

时间: 2024-11-06 15:02:11

select返回值可以这样子优雅编程的相关文章

Mybatis select返回值为map时,选取表字段的两列作为key,value

项目需要从ibatis升级到MyBatis,dao中有一个方法返回Map类型,具体是查询语句查询两个字段,将结果列表字段A的值作为key字段B的值作为value存入Map中作为结果返回: ibatis中Dao继承SqlMapClientDaoSupport类的queryForMap(String statement, Object param, String key, String value)方法可直接实现: MyBatis的SqlSession中只有selectMap(String stat

#跟着教程学# 3、Python基础 //Maya select和ls命令返回值问题

脚本编程 execfile('c:/*py') #括号里填要指定的py文件路径就可以执行了. 脚本中有中文,需要在开头加上 # coding=utf-8 表达式与操作符 专业术语,例如2+2,‘2’称为值,'+'为运算符,‘2+2’这个表达式是求值. 运算符,包括 赋值运算符: =简单的赋值运算 +=加法赋值运算 -=减法赋值运算 *= /= %= //=取整除赋值运算符 算术运算符:+    -    *    /    %    //    ** 关系运算符:==    >    <   

【转】ThinkPHP中数据库操作返回值总结

Thinkphp中的Think\Model类提供了数据库的基本CURD(Create.Update.Read及Delete),通过该类可以很便捷的进行操作.Model类及扩展类主要的方法有: Create操作:create()(非链式) .add().addAll()支持的链式操作有:table .data.field .relation .validate.auto .filter.scope .bind .token .comment Update操作save().setField().se

ThinkPHP中数据库操作返回值总结

转自:http://www.baiwar.com/post/thinkphp-database-operations-in-the-return-value.html Thinkphp中的Think\Model类提供了数据库的基本CURD(Create.Update.Read及Delete),通过该类可以很便捷的进行操作.Model类及扩展类主要的方法有: Create操作:create()(非链式) .add().addAll()支持的链式操作有:table .data.field .rela

linux编程中接收主函数返回值以及错误码提示

程序A创建子进程,并调用进程B,根据不调用的不同情况,最后显示结果不同. #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #include <errno.h> int main() { pid_t pid, rpid; int stat; if ((pid = fork()) < 0) { perror("for

03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

 1 PersonTestMapper.xml中的内容如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace:命名空间

10-02 Java 形式参数和返回值的问题深入研究,链式编程

形式参数和返回值的问题: 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链式编程 对象.方法1().方法2().......方法n(); 这种用法:其实在方法1()调用完毕后,应该一个对象: 方法2()调用完毕后,应该返回一个对象. 方法n()调用完毕后,可能是对象,也可以不是对象.

python开发编程基础:函数定义,返回值,参数

一,函数的定义 1,函数mylen叫做函数名 #函数名 #必须由字母下划线数字组成,不能是关键字,不能是数字开头 #函数名还是要有一定的意义能够简单说明函数的功能2,def是关键字 (define)3,():必须写4,函数体内尽量写注释,方便查看代码5,函数的调用:函数名+括号 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 def mylen(): #函数名 5 ''' 6 计算字符串长度的函数 这里写的是注释,方便查看代码 7 ''' 8

Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 传入函数 函数的本身也可以作为参数. Python内建的mapreduce的函数.(来源于谷歌的,后来被道格这家伙开源了,成为当今处理大数据最火热的hadoop中的计算模型---MapReduce) 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序