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

Linux下select和poll的用法

select()函数的作用
    系统调用select和poll的后端实现,用这两个系统调用来查询设备是否可读写,或是否处于某种状态。如果poll为空,则驱动设备会被认为即可读又可写,返回值是一个状态掩码
如何使用select()函数?
    select()函数的接口主要是建立在一种叫'fd_set'类型的基础上。它('fd_set') 是一组文件描述符(fd)的集合。由于fd_set类型的长度在不同平台上不同,因此应该用一组标准的宏定义来处理此类变量:
    fd_set set;
    FD_ZERO(&set);      
    FD_SET(fd, &set);   
    FD_CLR(fd, &set);   
    FD_ISSET(fd, &set); 
     
在过去,一个fd_set通常只能包含少于等于32个文件描述符,因为fd_set其实只用了一个int的比特矢量来实现,在大多数情况下,检查 fd_set能包括任意值的文件描述符是系统的责任,但确定你的fd_set到底能放多少有时你应该检查/修改宏FD_SETSIZE的值。*这个值是系统相关的*,同时检查你的系统中的select() 的man手册。有一些系统对多于1024个文件描述符的支持有问题。[译者注: Linux就是这样的系统!你会发现sizeof(fd_set)的结果是128(*8 = FD_SETSIZE=1024) 尽管很少你会遇到这种情况。]
select的基本接口十分简单:
    int select(int nfds, fd_set *readset, fd_set *writeset,
               fd_set *exceptset, struct timeval *timeout); 
其中:
nfds    
     需要检查的文件描述符个数,数值应该比是三组fd_set中最大数
     更大,而不是实际文件描述符的总数。
readset   
     用来检查可读性的一组文件描述符。
writeset
     用来检查可写性的一组文件描述符。
exceptset
     用来检查意外状态的文件描述符。(注:错误并不是意外状态)
timeout
     NULL指针代表无限等待,否则是指向timeval结构的指针,代表最
     长等待时间。(如果其中tv_sec


相关文档:

Linux iptable文档

总览
用iptables -ADC 来指定链的规

,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......

Linux软件安装常用方法

1、软件安装
卸载,分几种情况:
A:
RPM包,这种软件包就像windows的EXE安装
文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装
非常方便,在图形界面里你只需要双击就能自动安装

==如何卸载:
1、打开一个SHELL终端
2、因为Linux
下的软件名都包括版本号,所以卸载前最好 ......

arm linux 等待队列简单分析

Author-------Dansen-----xzd2734@163.com
wait_queue_head_t wait_q;
首先看看
wait_queue_head_t这个等待队列的结构
在wait.h中定义了这个结构
typedef struct
__wait_queue_head wait_queue_head_t;
struct __wait_queue_head {
 wq_lock_t
lock;
 struct list_head task_list;
};
# define wq_ ......

Linux设备驱动开发详解 笔记3 Linux内核及内核编程


在设备驱动方面,Linux2.6相对于Linux2.4有较大的改动,这主要表现在内核API中增加了不少新功能(如内存池)、sysfs文件系统、内核模块从.o变为.ko、驱动模块编译方式、模块使用计数、模块加载和卸载函数的定义等方面
Linux内核主要有进程调度、内存管理、虚拟文件系统、网络接口和进程间通信等5个子系统组成,如下图: ......

Linux设备驱动开发详解 笔记4 Linux内核模块

modprobe命令比insmod命令强大,它在加载某模块时会同时加载该模块所依赖的其他模块。使用modprobe命令加载的模块若以“modprobe –r filename”的方式卸载将同时卸载其依赖的模块。
printk打印到var/log/messages
2.6内核中已加载的信息也存在于/sys/module目录下,加载hello.ko后,内核中将包含/sys/mod ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号