阅读:1211回复:1
关于open函数的问题
我编写了一个简单的驱动,通过动态分配(register_chrdev函数)major(254),在模块里面
我只有一个open函数。 insmod/rmmod都成功了,mknod也用了 在/proc/device里面能够发现我的major和设备名称(db_driver), 不过这个设备是不存在的 ,我编写了一个用户程序,想试着用open打开这个设备,结果怎么也打不开! 我的思路是,不论这个设备是否存在,当用户程序通过open(设备名,0)打开这个设备时,都应该能够正确的调用驱动模块里面的open函数。我在驱动模块里面的open 函数里增加printk函数来跟踪,结果发现这个open没有被调用。 在insmod/rmmod时候,驱动模块的init/clean_up函数都调用了! 请大侠指教! |
|
沙发#
发布于:2004-08-20 10:40
proc文件系统是用来调试用的,真正的dev文件在/dev下,如果你使用register_chrdev,可能你就要用mknod自己建立一个设备节点,如果你使用devfs(2.4支持),系统可以动态帮你生成
|
|