linux设备驱动程序中的实验问题!
我按照   linux设备驱动程序(2th)做他上面的字符设备驱动程序,   
 实现scull0-3;   
 实现scullpipe,但是发现scullpipe运行的过程中,fops的read方法,好像一直都不   
 会停止读的(即使停下来),也是因为没有数据,被放进了wait_queue;   
 我的问题是,每次read到底read多少,什么时候结束?   
 (我知道每次read调用的count   参数都是4096),但是好像我ls   >    /dev/pipe,输入   
 了这么多数据,read完之后,他还是接着read;   
 所以,我想知道open   ,read,write,release函数在驱动中被调用的机制(什么时候   
 开始,结束)以及相关的参数传递!   
 请多指教!
------解决方案--------------------open: 就是当你在app调用open的时候打开。 
 release:就是当你在app调用close的时候关闭。 
 至于read,write,根据你的描述我想肯定不是一次调用而使你产生这种现象, 
 而你所要了解具体读写多少,这个根据你的情况来定的。 
 当kernel态没有足够的空间来写的时候他只能写相应大小,我们必须等待有足够的空间来写才可以。同样,如果读的话,看kernel有没有为你准备好相应的读数据。