在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一区二区三区| 国内免费视频成人精品| 青青草原社区| 99精品视频免费观看| 领导边摸边吃奶边做爽在线观看| 亚洲欧美日本国产在线观18| 国产午夜高潮熟女精品AV| 午夜福利92看看电影80| 国产成人精品s8p视频| 色戒2小时38分在线观看| 插骚妇好爽好骚| 色多多污污下载| 国产精品亚洲精品久久国语| 武侠古典久久亚洲精品| 国产乱子影视频上线免费观看 | 俄罗斯美女破处| 日韩精品亚洲专区在线电影不卡| 99在线免费| 日日摸夜夜嗷嗷叫日日拍| 国产WW高清大片免费看| 亚州天堂在线视频av| 精品综合久久久久久8888| 中文字幕无码一区二区免费| 男生在床上脱美女 胸| 吃胸亲吻吃奶摸下面免费视频| 特级aa 毛片免费观看| 精品国产三级a| 99精品国产在热久久| 日本妈妈在线观看中文字幕| 国产精品无码久久av| 影音先锋xfplay影院av| 免费的av不用播放器的| 超嫩校花被灌醉在线观看| 午夜爽喷水无码成人18禁三级| 精品国产午夜肉伦伦影院| 99久久精品费精品国产| 忘忧草研究所 麻豆| 久久99re热在线观看视频| 99久久免费国产精品特黄|