- 论坛徽章:
- 0
|
mknod /dev/memory c 88 0
创建一个设备
然后自己写驱动注册这个设备, 用struct file_operations 结构来调用write read函数实现echo abc>/dev/memory ,这个可以很好实现,
但是不明白为什么实现不了echo abc >>/dev/memory
- /* access functions */
- struct file_operations memory_fops = {
- read: memory_read,
- write: memory_write,
- open: memory_open,
- release: memory_release
- };
- ssize_t memory_write( struct file *filp,const char *buf,
- size_t count, loff_t *f_pos)
- {
- unsigned long liret = -1;
- size_t linum = count > BUFF_SIZE? BUFF_SIZE : count;
- //liret = copy_from_user(memory_buffer,tmp,1);
- if(*f_pos == 0)
- {
- liret = copy_from_user(memory_buffer,buf, linum);
- printk(KERN_EMERG "memory_write->if\n");
- }
- else
- {
- liret = copy_from_user(memory_buffer + strlen(memory_buffer), buf, linum - strlen(memory_buffer));
- printk(KERN_EMERG "memory_write->else\n");
- }
- printk(KERN_EMERG "memory_write count:%d\n", count);
- return linum;
- }
复制代码 多谢了 |
|