博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建一个procfs文件系统的节点
阅读量:4283 次
发布时间:2019-05-27

本文共 1204 字,大约阅读时间需要 4 分钟。

下面是一个创建简单的procfs文件节点的例子:

static ssize_t usb_hnp_show(struct file *file, char __user *user_buf,				     size_t count, loff_t *ppos){//	char *buf;	ssize_t ret;	struct usb_device *udev = global_usb_device;	if (udev == NULL)	{		printk(KERN_ERR "%s:the usb_device is NULL\n", __func__);		return -EFAULT;	}	dev_err(&udev->dev, "zsm %s\n", __func__);	return ret;}static ssize_t usb_hnp_store(struct file *file,				      const char __user *user_buf, size_t count,				      loff_t *ppos){	char buf[32];	ssize_t buf_size;	struct usb_device *udev = global_usb_device;	if (udev == NULL)	{		printk(KERN_ERR "%s:the usb_device is NULL\n", __func__);		return -EFAULT;	}	dev_err(&udev->dev, "zsm %s\n", __func__);	buf_size = min(count, (size_t)(sizeof(buf)-1));	if (copy_from_user(buf, user_buf, buf_size)) {		dev_err(&udev->dev, "Failed to copy from user\n");		return -EFAULT;	}	buf[buf_size] = 0;	return buf_size;}static const struct file_operations usb_hnp_node_fops = {	.owner = THIS_MODULE,	.open = simple_open,	.read = usb_hnp_show,	.write = usb_hnp_store,};

注册如下:

struct proc_dir_entry *usb_hnp_dentry;	usb_hnp_dentry = proc_create("enable_usb_hnp",					S_IRUGO, NULL, &usb_hnp_node_fops);
对应生成的文件节点位置如下:

在/proc/下

转载地址:http://vnngi.baihongyu.com/

你可能感兴趣的文章
加班防猝死的十个小建议
查看>>
《JavaScript权威指南》学习笔记之二十---XMLHttpRequest和AJAX解决方案
查看>>
Ubuntu安装二:在VM中安装Ubuntu
查看>>
PHP获取表单方法总结
查看>>
Git学习笔记总结和注意事项
查看>>
谈“穷”-----穷只是一种结果,真正穷的是思维和行动
查看>>
六位创业者分享内心最恐惧的事情
查看>>
JavaScript数值转换总结
查看>>
JavaScript中的重载解读
查看>>
浅谈JavaScript中的原型模式
查看>>
HTML的奇葩嵌套规则
查看>>
我是如何自学编程的——“3遍读书法”
查看>>
当老实人遇到世态炎凉
查看>>
程序猿,你们这么拼是找不到妹纸的!
查看>>
问题与对策:CSS的margin塌陷(collapse)
查看>>
识别“百度权重”作弊的方法
查看>>
干货|程序员常去的14个顶级开发社区
查看>>
如何添加网站for Linux(绑定域名)
查看>>
一些常被你忽略的CSS小知识
查看>>
简易博客编辑器:玩转document.execCommand命令
查看>>