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

linux 平台应用程序怎么样通过USB控制

(1)用户模式USB
      usbfs虚拟文件系统允许从用户空间以原始方式访问USB设备。usbfs通常挂载在/proc/bus/usb/上,usbfs树包含了系统中与每个USB控制器(或总线)对应的目录,每个目录依次包含了与该总线上的USB设备相对应的结点。
      为了更好地理解usbfs,我们看一下包含英特尔ICH4南桥芯片组的系统。USB控制器是PC系统中南桥芯片组的1部分。ICH4支持1个USB EHCI(高速USB 2.0)控制器和3个USB UHCI控制器,我们称EHCI控制器为bus1,3个UHCI控制器分别为bus2、bus3和bus4。现在假设系统只有2个物理USB端口,它们与bus3 相应的UHCI控制器连接。
      我们将一个全速尼康数码相机和高速希捷USB 2.0硬盘连接到系统上的2个USB。先看一下/proc/bus/usb/devices,找到相关入口:
bash> ls –lR /proc/bus/usb/devices
T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=04b0 ProdID=0205 Rev= 1.00
S: Manufacturer=NIKON
S: Product=NIKON DSC E5200
S: SerialNumber=2507597
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50
Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 12 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0bc2 ProdID=0501 Rev= 0.01
S: Manufacturer=Seagate
S: Product=USB Mass Storage
S: SerialNumber=000000062459
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50
Driver=usb-storage
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
(2)libusb。与插入设备相应的usbfs文件包含了相关的USB设备及配置描述符。在前面的例子中,读取/proc/bus/usb/003/003
可获得相机的描述符信息,读取/proc/bus/usb/001/007可获得硬盘描述符信息。但管理usbfs文件并不是那么简单的,因为设备文件名在设备拔出后需要重新使用。解决办法是用libusb库,它封装使用usbfs。使用libusb而不直接操作usbfs,还有一个好处:只要操作


相关文档:

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下查看用户组的信息


groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
添加用户abc到root群组:
gpasswd -a abc root ......

Linux内核中 遍历链表


最近在看一个开源的代码,一段代码看了很久都没有看懂,Google了一下,尽然是linux中链表的遍历。
遍历链表:
遍历链表list_for_each是一个宏,展开了就是一个for循环
#define list_for_each(pos, head) \
        for (pos = (head)->next; prefetch(pos->next), pos != ( ......

Linux信号量 共享内存和消息队列

Linux信号量 共享内存和消息队列
1. 信号量
使用信号量可以实现进程间同步。主要函数定义:
#include <sys/sem.h>
int semctl(int sem_id, int sem_num, int command, …);
int semget(key_t key, int num_sems, int sem_flags);
int semop(int sem_id, struct sembuf *sem_ops, size_t num_sem_ops);
& ......

Linux PPP 数据收发流程

Linux PPP 数据收发流程
                      
转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd
作者联系方式:李先静<xianjimli at hotmail dot com>
更新时间:2007-5-4
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号