Linux driver中device_create()

news/2024/7/4 0:47:09 标签: linux, class, null, google
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views"> 使用内核版本Linux 2.6.32


通过驱动模块的加载在/dev下创建设备文件,在驱动模块卸载时又自动的删除在/dev下创建的设备文件非常方便。而这个过程就是通过device_create()和device_destroy()内核函数完成的,在Linux2.6.27之前是class_device_create()和class_device_destroy()。最近在开发过程中发现device_create()参数使用很灵活,一不小心就会导致加载时内核报oops错误(vsnprintf引起)。google上搜到的一些文章也有着问题。如如下使用就会出错:


device_create(my_class, NULL, MKDEV(major,minor), "hello" "%d",0);


在"hello" "%d"之间加上“,”能解决insmod 时oops错误,但是还是不能在/dev目录下创建想要的设备文件。正确的调用方法如下:


device_create(my_class, NULL, MKDEV(major,minor), NULL,"hello%d",0);


本篇文章来源于 Linux公社网站(www.class="tags" href="/tags/LINUX.html" title=linux>linuxidc.com)  原文链接:http://www.class="tags" href="/tags/LINUX.html" title=linux>linuxidc.com/Linux/2011-09/42836.htm

http://www.niftyadmin.cn/n/849178.html

相关文章

oracle database 10.2.0.4 升级到 10.2.0.5

某发票开发测试库升级 升级前准备,此次升级只是很对测试环境数据库升级,所以没有事先一个月来获取系统,数据库的统计信息,机器性能比对 为了加快升级只是清理了以下信息01.截断SYS.AUD$基表: SQL>TRUNCATE TABLE SYS.AUD$;02.清…

ldap环境ls慢

公司服务器全部在ldap环境下。上次ldap服务异常终止后,然后centos服务器ls、top什么的都很慢(感觉要卡一下)。通过[rootip01 ~]# ss | grep CLOSE | wc -l 206这206个全部都是连接到 LDAP的。感觉可能是这个问题。 因为ldap终止后然后服务器T…

linux 中解析命令行参数

用Getopt在Linux下获取命令行参数的方法 用Getopt在Linux下获取命令行参数的方法 [摘要] 如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变opterr设为0即可。[关键…

Linux密码忘记怎么办

如果忘记了Linux密码,这时有两种情况,一种是用LILO管理器来启动的,另一种是不通过LILO启动的。如果你的系统是通过LILO管理器来启动的,可在LILO启动提示符LILO boot:后输入Linux single,而后回车启动Linux系…

VS2012编译安装VTK-5.10.1(支持Python)

1 源码下载 到参考资料[1]下载vtk-5.10.1.zip和vtkdata-5.10.1.zip。 2 源码解压 这里以D:盘为例进行说明。在D:盘中创建一个目录VTK,然后在其中创建4个目录:source,、build、data和install。将vtk-5.10.1.zip和vtkdata-5.10.1.zip分别解压到VTK/src目录…

mac的open命令[快速打开程序的利器]

open命令的工作类似于模拟鼠标点击对应的程序或者文件,他可以打开文件、程序、url、目录等。用法:1、打开qq,open -a qq2、finder方式打开当前目录的build子目录,open build3、打开当前目录下的文件,open -e 文件名4、…

基于统计的压缩算法:游程编码

1.游程编码概念 游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。 2.基本原理 用一个符号值和串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。 如:   原始文本&#xff1a…

1087 FBI树

1087 FBI树 树的常识&#xff0c;之前初赛搞过&#xff0c;现在早亡了 其实没有什么难度&#xff0c;只是简单的模拟 #include<iostream> #include<string> #include<cstring>char A[1025]; void work(int low, int up)// {int mid (lowup)/2;//大于1的分…