在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用udev、sys動態(tài)創(chuàng)建linux設(shè)備結(jié)點

            利用udev、sys動態(tài)創(chuàng)建linux設(shè)備結(jié)點

            作者: 時間:2012-08-27 來源:網(wǎng)絡(luò) 收藏

            在Linux2.6內(nèi)核中,devfs被認(rèn)為是過時的方法,并最終被拋棄,取代了它。Devfs的一個很重要的特點就是可以。那我們現(xiàn)在如何通過文件系統(tǒng)呢?

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

            下面通過一個實例,說明、的方法。注意代碼中紅色的部分是為了實現(xiàn)動態(tài)創(chuàng)建設(shè)備結(jié)點添加的。

            #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 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]='