linux c中select使用技巧
it_value.tv_sec = 0;
it_value.tv_usec = 100000;
select(1,NULL,NULL,NULL,&it_value);
上面的代码并不是立即返回而是等待100ms,可以作为定时器使用,并且准确度比sleep高。
2、linux平台下select函数修改超时时间
select_timeout.tv_sec = 10;
select_timeout.tv_usec = 0;
for(;;)
{
if(select(fd+1, &rset, NULL, NULL, &select_timeout)<=0)
{
}
}
我们原本希望在fd可读的时候处理该数据;如果没有数据睡眠等待10s中。但是
实际上由于select函数修改select_timeout的值,导致上面的代码进入无限循环并且不能睡眠。
select(confd+1, &rset, NULL, NULL, &select_timeout);
假设confd是一个tcp的网络fd并且加入到rset中。如果socket的对端关闭连接,
该select函数立即从睡眠中返回,这时候如果读该socket返回值为0;我们可以判断该socket断开。
该tcp连接,这时候select函数立即返回,但是返回值是0;如果在调用该函数时对端没有
关闭并且该socket写缓冲区为空,这时候该任务睡眠等待该confd可写,如果等待的过程
中该对端关闭连接select并不会立即返回,而是一直睡眠直到超时。
linux c中select使用技巧的更多相关文章
- linux c中select使用技巧——计时器(转)
通过本文你会了解到: 1. select()原型及参数说明 2. select()应用情景 3. select()注意事项 4. select()作定时器 原型 int select(int nfds ...
- linux c中select使用方法
1.select函数作为定时器使用 it_value.tv_sec = 0; it_value.tv_usec = 100000: select(1,NULL,NULL,NULL,& ...
- find查找文件命令 - Linux系统中的常用技巧整理
“find”在Linux系统中是比较常用的文件查找命令,使用方法有很多,可以拥有查找文件.文件目录.文件更新时间.文件大小.文件权限及对比文件时间.下面是整理的“find”常用方法,方便以后需要的时候 ...
- linux find命令-print0和xargs中-0使用技巧(转载)
本文介绍了linux find命令中-print0和xargs中-0用法技巧,一些find命令的使用经验,需要的朋友参考下. 本节内容:linux find命令中-print0和xargs中-0的用法 ...
- linux find命令-print0和xargs中-0使用技巧
文章是转载的,原文很精彩,我对其中个别地方没有快速理解,我在此予以补充,方便后续回顾理解. 本文介绍了linux find命令中-print0和xargs中-0用法技巧,一些find命令的使用经验,需 ...
- hive中select中DISTINCT的技巧和使用
hive中select中DISTINCT的技巧和使用 单表的唯一查询用:distinct 多表的唯一查询用:group by 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 ...
- [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
[翻译] C# 8.0 新特性 2018-11-13 17:04 by Rwing, 1179 阅读, 24 评论, 收藏, 编辑 原文: Building C# 8.0[译注:原文主标题如此,但内容 ...
- Linux的95个小技巧
Linux的95个小技巧 by WEB全栈工程师 on 2012 年 03 月 27 日 这里总结了Linux使用中的一些小技巧 1.实现RedHat非正常关机的自动磁盘修复 先登录到服务器,然后在/ ...
- Linux命令行 3大技巧归纳
在软件开发的世界中,作为web端程序猿打交道最多的操作系统相信就是Linux系统了吧.而对于Linux系统的使用,如果能掌握一些小技巧,在程序开发.调试的过程中,相信做事的效率也会有一些提升.下面就和 ...
随机推荐
- Linux下安装awstats日志统计分析
1. 下载安装 cd /data/software wget http://prdownloads.sourceforge.net/awstats/awstats-7.0-1.noarch.rpm 2 ...
- JavaScript中的window对象
JavaScript中的window对象:http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html
- 四大类NoSQL数据库
http://blog.sina.com.cn/s/blog_636415010101945l.html 原文:http://blog.monitis.com/index.php/2011/05/22 ...
- JAVASCRIPT 框架>>
jQuery jQueryjQuery 是目前最受欢迎的 JavaScript 框架 jQuery 是为处理 HTML 事件而特别设计的<script type="text/javas ...
- C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
1.C++各大有名库的介绍--C++标准库 2.C++各大有名库的介绍--准标准库Boost 3.C++各大有名库的介绍--GUI 4.C++各大有名库的介绍--网络通信 5.C++各大有名库的介绍- ...
- Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图
目录 1.安装&破解Rational Rose 2003 1.1 安装Rose 2003 1.2 破解Rose 2003 1.3运行出错“没有找到suite objects.dl” 2. Ra ...
- NOIP2010-普及组复赛-第四题-三国游戏
题目描述 Description 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不 ...
- Cash Machine
Problem Description A Bank plans to install a machine for cash withdrawal. The machine is able to de ...
- c题 Registration system
Description A new e-mail service "Berlandesk" is going to be opened in Berland in the near ...
- javacript没有多维数组只能模拟?
为什么说javacript没有多维数组只能模拟?但是我看到是可以实现多维数组的啊!这是为什么呢?下面我们来实验下. <!DOCTYPE html> <html lang=" ...