block_dev.c程序是块设备文件数据访问操作程序,里面涉及到对块设备文件的读写函数。
代码分析:
由于是块设备的读写操作,所以每一次都是以块为单位(1024)进行操作;pos是文件的位置光标,用pos可以得到文件现在所处在哪块逻辑块上,并且在该逻辑块上偏移了多少。再根据块的大小 可以得到该逻辑块还剩下多少空间。最后跟需要写入的字符数比较,如果该逻辑块剩下的空间足够存放需要写入的字符,则读取该逻辑块到缓存区,然后进行数据的写入;否则,先填满逻辑块剩下的空间,然后再读取下一个逻辑块;
block_write()
int block_write(int dev, long * pos, char * buf, int count)函数,把用户空间buf中count个字符从pos位置开始写入到dev设备上;
功能:在dev设备上pos处开始把用户空间buf中的count个字符 写入到设备上
参数: