返回信息流用户空间应用程序一般使用printf和scanf做数据的输出和输入
内核驱动中,输出使用printk,请问输入应当使用什么函数呢?
常用的方法有三种
1、注册虚拟的字符设备文件,以这个虚拟设备上的 read/write/ioctl 等接口与用户交互;
2、注册 proc 接口,接受用户的 read/write/ioctl 操作;
3、注册 sysfs 属性;
具体的,可以参考这个网页
http://hi.baidu.com/liuming910/blog/item/835d93c579afbfc339db49d5.html--
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5388同步于 2009/7/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
【求助~已解决】请问linux内核驱动的输入函数是什么?
hobby
2009/7/17镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 hobby 的大作中提到: 】
: 哦?细说来听听?
给你贴段proc的代码吧,照葫芦画瓢就可以了
static ssize_t gpio_write (struct file *file, const char __user *buf, size_t count,
loff_t *offset)
{
char _buf[7]={0};
if (copy_from_user(_buf,buf,sizeof(_buf))) {
return -EFAULT;
}
......
......
return 6
}
struct proc_dir_entry *__init
gpio_proc_create(char *name, void *data)
{
struct proc_dir_entry *pde;
if (!name)
return NULL;
pde = create_proc_entry(name,S_IFREG | S_IRUGO | S_IWUSR, NULL);
if (pde) {
pde->read_proc = gpio_proc_read;
pde->write_proc = gpio_proc_write;
pde->size = 0;
pr_debug("Registered /proc/%s\n", name);
} else {
pr_debug("Cannot create a valid proc file entry");
}
return pde;
}
调用:
gpio_proc_create("driver/gpio_driver",NULL);
【 在 ArmStrong 的大作中提到: 】
: 给你贴段proc的代码吧,照葫芦画瓢就可以了
: static ssize_t gpio_write (struct file *file, const char __user *buf, size_t count,
: loff_t *offset)
: ...................
多谢