使用register chrdev註冊字元裝置

2021-08-20 03:42:58 字數 2028 閱讀 4194

1.2.2  使用register_chrdev註冊字元裝置

註冊字元裝置可以使用register_chrdev函式。

int register_chrdev (unsigned int major, const  char *name, struct file_operations*fops); 

register_chrdev函式的major引數如果等於0,則表示採用系統動態分配的主裝置號。

登出字元裝置可以使用unregister_chrdev函式。

int unregister_chrdev(unsigned int major, const char *name); 

例1.3  register_chrdev註冊字元裝置例項

**見光碟\src\1drivermodel\1-3register_chrdev。核心**如下所示:

static unsigned char ******_inc=0;  

static unsigned char demobuffer[256];  

int ******_open(struct inode inode, struct file *filp)  

int ******_release(struct inode *inode, struct file *filp)  

ssize_t ******_read(struct file *filp, char __user *buf, size_t count,loff_t *f_pos)  

return count;  

}  ssize_t ******_write(struct file *filp, const char __user *buf, size_t count,loff_t *f_pos)  

return count;  

}  struct file_operations ******_fops = ;  

/**********************************************

module routine  

*********************************************/  

void ******_cleanup_module(void)  

int ******_init_module(void)  

return 0;  

}  module_init(******_init_module);  

module_exit(******_cleanup_module);  

應用程式的**如下:

void main(void)  

printf("open /dev/fgj successfully\n");  

//寫資料  

retval=write(fd,"fgj",3);  

if(retval==-1)  

//讀資料  

retval=read(fd,data,3);  

if(retval==-1)  

data[retval]=0;  

printf("read successfully:%s\n",data);  

//關閉裝置  

close(fd);  

}

字元裝置模組使用insmod載入,載入完畢需要在/dev目錄下使用mkmod命令建立相應的檔案結點,編譯生成的應用層可執行程式為test。本例執行結果如下:

[root@/home]#insmod demo.ko  

[root@urbetter /home]# mknod /dev/fgj c 224 0  

[root@urbetter /home]# ./test   

open /dev/fgj successfully  

read successfully:fgj  

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...