在Linux 2.6內核中,devfs被認為是過時的方法,并最終被拋棄,udev取代了它。Devfs的一個很重要的特點就是可以動態創建設備結點。那我們現在如何通過udev和sys文件系統動態創建設備結點呢?
下面通過一個實例,說明udev、sys動態創建設備結點的方法。注意代碼中紅色的部分是為了實現動態創建設備結點添加的。
#include
#include
#include
#include
#include
#include
#include
MODULE_LICENSE ("GPL");
int hello_major = 252;
int hello_minor = 0;
int number_of_devices = 1;
char data[50]="foobar not equal to barfoo";
struct cdev cdev;
dev_t dev = 0;
static int hello_open (struct inode *inode, struct file *file)
{
printk (KERN_INFO "Hey! device opened ");
return 0;
}
static int hello_release (struct inode *inode, struct file *file)
{
printk (KERN_INFO "Hmmm... device closed ");
return 0;
}
ssize_t hello_read (struct file *filp, char *buff, size_t count, loff_t *offp)
{
ssize_t result = 0;
if (copy_to_user (buff, data, sizeof(data)-1))
result = -EFAULT;
else
printk (KERN_INFO "wrote %d bytes ", count);
return result;
}
ssize_t hello_write (struct file *filp, const char?*buf, size_t count, loff_t *f_pos)
{
ssize_t ret = 0;
printk (KERN_INFO "Writing %d bytes ", count);
if (count>127) return -ENOMEM;
if (count<0) return -EINVAL;
if (copy_from_user (data, buf, count)) {
ret = -EFAULT;
}
else {
data[127]='
主站蜘蛛池模板: 国产成人精品免费视频大全办公室 | 亚洲精品国产乱码AV在线观看 | 久久综合香蕉久久久久久久 | 伊人影院中文字幕 | 97影院午夜午夜伦不卡 | 青青草国产精品久久 | 亚洲精品久久久久久偷窥 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 91欧洲在线视精品在亚洲 | 日韩 无码 手机 在线 | 丁香成人网址 | 99久久久无码国产AAA精品 | 国产v综合v亚洲欧美大片 | BL文库好大粗黑强强肉NP | 妈妈的职业3完整版在线播放 | 亚洲精品国偷拍自产在线观看蜜臀 | 51久久夜色精品国产 | 中文字幕无线手机在线 | 野花韩国高清完整版在线观看5 | 国产真实露脸乱子伦 | 少妇人妻偷人精品视蜜桃 | 亚洲欧洲精品成人久久曰影片 | 久久亚洲精品中文字幕60分钟 | 国产精品热久久高潮AV袁孑怡 | 武侠古典久久亚洲精品 | 国产中文在线 | 黑人寄宿羽月希产后奶水 | 少妇第一次交换 | 手机毛片在线观看 | 高清bblxx手机在线观看 | 性刺激欧美三级在线现看中文 | 国模大胆一区二区三区 | 男欢女爱免费视频 | 亚洲免费视频日本一区二区 | 花蝴蝶高清在线视频免费观看 | 久久99精品视频 | 国产精品JIZZ在线观看A片 | 女人高潮被爽到呻吟在线观看 | 被免费网站在线视频 | 亚洲一区二区三不卡高清 | 国产野外无码理论片在线观看 |