select的用法

1、头文件

    #include <sys/select.h>

    #include <sys/types.h>

    #include <sys/time.h>

    #include <unistd.h>

2、相关函数和宏

    int select(int nfds, fs_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);

    void FD_CLR(int fd, fd_set *set);

    int FD_ISSET(int fd, fd_set *set);

    void FD_SET(int fd, fd_set *set);

    void FD_ZERO(fd_set *set); 

3、功能描述

    select会一直监视多个文件描述符的状态,直到某个或者某几个文件描述变为可用时返回;或者超时返回。

    select函数的参数nfds是所有文件描述符中最大值再加上1;参数timeout是select返回之前等待的最长时间,当timeout结构体中的两个成员变量值都为0时,select函数立即返回。

    四个宏的定义如下:

    FD_CLR把一个文件描述符从set中删除。

    FD_SET把一个文件描述符设置到set中。

    FD_ZERO清空set。

    FD_ISSET测试某个文件描述符是否在某个set中,此宏可用在select返回后。

4、返回值

    如果成功,返回三种set中文件描述符的数量;如果失败,返回-1,这时三种FD_SET和timeout都变为未定义的,所以如果有错误发生,不应该再以它们的值作为判断依据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值