大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。
一、在用户空间,使用ioctl系统调用来控制设备,原型如下:
int ioctl(int fd,unsigned long cmd,...);
/*
fd:文件描述符
cmd:控制命令
...:可选参数:插入*argp,具体内容依赖于cmd
*/
用户程序所作的只是通过命令码告诉驱动程序它想做什么,至于怎么解释这些...
分类:
其他好文 时间:
2015-04-03 11:18:15
阅读次数:
210
在unix中可用的文件I/O函数包括打开文件,读文件,写文件等。
Unix系统中的大多数文件I/O需要用到5个函数:open,read,write,lseek,close.
这里要说明的是read,write的文件I/O都是不带缓冲的,所谓的不带缓冲意思是它们都是走的内核中的一个系统调用。
对于内核而言,所有打开的文件都是通过文件描述符进行引用,文件描述符是一个非负整数。当打开一个现有文件或...
分类:
其他好文 时间:
2015-04-01 17:52:56
阅读次数:
316
线程共享的环境包括: 1.进程代码段 2.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯) 3.进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:1.线程ID ...
分类:
编程语言 时间:
2015-03-30 16:18:13
阅读次数:
182
1文件描述符内核为每个进程维护一个已打开文件的记录表,文件描述符是一个较小的正整数(0—1023),它代表记录表的一项,通过文件描述符和一组基于文件描述符的文件操作函数,就可以实现对文件的读、写、创建、删除等操作。常用基于文件描述符的函数有open(打开)、creat(创建)、close(关闭)、r...
分类:
其他好文 时间:
2015-03-30 16:16:54
阅读次数:
241
基于文件指针的文件操作(缓冲)linux的文件和文件描述符linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。普通文件:也称磁盘文件,并且能够进行随机的数据存储(能够自由seek定位到某一个位置);管道:是一个从一端发送数据,另一端接收数据的数据通道;目录:也...
分类:
其他好文 时间:
2015-03-30 16:09:18
阅读次数:
127
Nginx采用epoll模块实现高并发的网络编程,现在对Nginx的epoll模块进行分析。定义在src/event/modules/ngx_epoll_module.c中1. epoll_create.int epoll_create(int size);创建一个epoll的文件描述符,参数siz...
分类:
其他好文 时间:
2015-03-30 16:02:59
阅读次数:
223
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。
进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:
1.线程ID
每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来...
分类:
编程语言 时间:
2015-03-28 17:17:44
阅读次数:
124
1 int main(void) 2 { 3 char s[] = "abc.txt"; 4 int i = 0; 5 6 close(STDOUT_FILENO);//关闭标准输出文件描述符 7 int fd1 = open("/dev/pts/1", O_WR...
分类:
其他好文 时间:
2015-03-28 15:34:28
阅读次数:
105
====文件IO====Linux系统IO操作都是使用文件描述符来代表打开的文件,一个非负的的整数,它被用来指所有类型的打开的文件,包括管道,FIFO,网络套接字,终端,设备和一般文件。每个进程都有自己的一套文件描述符经常使用的三个文件描述符是:标准输入(stdin, STDIN_FILENO, 0...
分类:
系统相关 时间:
2015-03-21 22:43:28
阅读次数:
248
优于 select 的 epoll (I/O 复用)select 速度慢的原因
调用select后针对所有文件描述符的循环
每次调用函数时都需要向该函数传递监视对象信息
select并不是把发生变化的文件描述符单独集中到一起,而是通过观察作为监视对象的fd_set函数的变化,因此不能避免对所有监视对象的循环语句。而且,监视对象变量会发生变化,在调用select函数之前要复制并保存原有信息,并在每次调...
分类:
其他好文 时间:
2015-03-17 15:48:05
阅读次数:
159