易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux select

select函数是用于程序监视多个文件描述符(file descrīptor)的状态变化。程序会停在select这里等待,直到被监视的文件描述符有某一个或多个发生了状态改变。select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组, 每一个数组元素都能与一打开的文件描述符(不管是Socket描述符,还是其他 文件或命名管道或设备描述符)建立联系,建立联系的工作由程序员完成, 当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执 行了select()的进程哪一Socket或文件可读.
select函数原型如下:
   int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
函数的最后一个参数timeout显然是一个超时时间值,其类型是struct timeval *,即一个struct timeval结构的变量的指针,所以我们在程序里要申明一个struct timeval tv;然后把变量tv的地址&tv传递给select函数,如果最后一个超时的时间值设置为NULL表示无超时时间。struct timeval结构如下:
struct timeval
{
long   tv_sec;     /* seconds */
long   tv_usec;    /* microseconds */
};
第2、3、4三个参数的类型是一样的: fd_set *,即我们在程序里要申明几个fd_set类型的变量,比如定义了rfds, wfds, efds。
另外关于fd_set类型的变量,还有一组标准的宏定义来处理此类变量:
FD_ZERO(fd_set *fdset):清空fdset与所有文件描述符的联系。
FD_SET(int fd, fd_set *fdset):建立文件描述符fd与fdset的联系。
FD_CLR(int fd, fd_set *fdset):清除文件描述符fd与fdset的联系。
FD_ISSET(int fd, fd_set *fdset):检查fd_set联系的文件描述符fd是否可读写,>0表示可读写。
(关于fd_set及相关宏的定义见/usr/include/sys/types.h)定义的这三个参数都是描述符的集合,第一个rfds是用来保存这样的描述符的:当描述符的状态变成可读的时系统就会告诉select函数返回,第二个wfds是指有描述符状态变成可写的时系统就会告诉select函数返回,第三个参数efds是特殊情况,即描述符上有特殊情况发生时系统会告诉select函数返回。下面以一个输入为例来说明:
......other codes
int fd1, fd2;         /* 在定义两个描述符*/
fd1 = socket(...);    /* 创建socket连接*/
fd2


相关文档:

zz 删除Ubuntu Linux操作系统旧内核的方法


Oracle帮您准确洞察各个物流环节
使用Ubuntu一段时间后,就会发觉由于自动升级,系统里安装了很多内核。像我,竟然安装了下面那么多,这个造成了漫长的启动列表。必须删掉一些不用的。
首先就是使用如下命令,列出所有安装的内核,下表中,带有image的就是内核文件。从中选择要卸载的包,用apt-get来卸载。
[tc@ibm:~ ......

[转] 大企业在后端使用Linux的十大常见方式

转自:http://os.51cto.com/art/201002/184694.htm
世界上最大的技术支持、软件和硬件公司每天使用Linux完成各种任务与解决方案,那么这些大公司究竟是怎么使用Linux的呢?其实并不神秘,本
文为你揭晓答案,大多数公司都不会使用Linux作为桌面操作系统,主要是用于后端服务器操作系统,经过这些大公司的大胆尝试,许多事 ......

跟我一步一步制作一个基本的linux启动盘

       原创文章,转载请注明出处,谢谢!       
       作者:清林,博客名:飞空静渡
这是一篇自己很早写的文章了,当时根据网上的一些教程一步一步制作,本来想把自己做的过程放到网上,可以西一值忙于公司项目,没有时 ......

在menuconfig中配置Linux内核裁剪的具体步骤(3)

第十二部分: 全部删除
  Instrumentation support
第十三部分:全部删除
  Kernel hacking --->破解核心?可不是当骸客啦,不选
第十四部分:全部删除
  Security options --->
第十五部分:全部删除
  Cryptographic options --->这是核心支持加密的选项
第十六部分:全部删除
  Library rout ......

LINUX五笔安装


下载地址:http://www.fcitx.org/main/?q=node/9
Version-版本 Update─更新日期备注
fcitx-3.4.tar.bz2
2006-09-21
最新稳定版
fcitx-060910.tar.bz2
2006-09-10
测试版
fcitx-3.3.1-bin.tar.bz2
2006-08-30
稳定版(预编译包IA32)
选择最新版。。
源码包的安装;
[root@localhost beinan]# tar jxvf fci ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号