在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何通過udev和sys文件系統(tǒng)動(dòng)態(tài)創(chuàng)建設(shè)備結(jié)點(diǎn)

            如何通過udev和sys文件系統(tǒng)動(dòng)態(tài)創(chuàng)建設(shè)備結(jié)點(diǎn)

            作者: 時(shí)間:2011-05-10 來(lái)源:網(wǎng)絡(luò) 收藏

            在Linux2.6內(nèi)核中,devfs被認(rèn)為是過時(shí)的方法,并最終被拋棄,取代了它。Devfs的一個(gè)很重要的特點(diǎn)就是可以。那我們現(xiàn)在呢?

            本文引用地址:http://www.biyoush.com/article/150776.htm

            下面一個(gè)實(shí)例,說(shuō)明、的方法。注意代碼中紅色的部分是為了實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建設(shè)備結(jié)點(diǎn)添加的。
            #include linux/module.h>
            #include linux/kernel.h>
            #include linux/init.h>
            #include linux/fs.h>
            #include linux/cdev.h>
            #include asm/uaccess.h>
            #include linux/device.h>
            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 openedn);
            return 0;
            }
            static int hello_release (struct inode *inode, struct file *file)
            {
            printk (KERN_INFO Hmmm... device closedn);
            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 bytesn, 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 bytesn, count);
            if (count>127) return -ENOMEM;
            if (count0) return -EINVAL;
            if (copy_from_user (data, buf, count)) {
            ret = -EFAULT;
            }
            else {
            data[127]='