linux - 如何获得 linux 设备驱动程序的免费次要编号?

标签 linux device-driver

我的 linux 环境中有多个进程必须使用相同的设备驱动程序来访问许多类似的设备。我的问题是,如果一个进程实例化一个设备(通过实例化,我的意思是 mknod )文件,并使用一个次要编号,比如 0 和 1 用于两个设备。那么另一个进程在做同样的事情时如何知道要使用哪个次要号码呢?

简而言之,在应用程序空间中是否可以找到使用相同驱动程序的设备文件的数量?

最佳答案

My problem is that if one process instantaiates a device(by instantiate, I mean mknod ) file

在 *NIX 世界中,设备通常在内核内部静态地分配主要/次要编号。 静态 在某种意义上,现在 Linux 下的大多数设备都具有动态的主要/次要设备,并且可以通过/dev(或/proc 或/sys)下的设备节点进行访问。

IOW,用户空间应用程序不能这样做,因为要与驱动程序(或设备)通信,它必须知道主要/次要已经能够访问驱动程序的方式。

详细信息会很多,最好阅读 the 3rd chapter of LDD讨论主要/次要分配的讨论。

在/dev/下自动创 build 备现在通常由 udev 处理我不是很熟悉。

关于linux - 如何获得 linux 设备驱动程序的免费次要编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096411/

相关文章:

c - IN 在 Windows 设备驱动函数中是什么意思?

我可以在 dma_sync_single_for_cpu 之后调用 dma_unmap_single 吗?

linux - 将 awk 输出重定向到 bash 中的文件

linux - 解析符号链接(symbolic link)算法

python - 如何在windows ubuntu bash上安装python3.6

java - 从 Java 创 build 备驱动程序包

linux - 如何将数据保存到设备文件?

html - perl:在 Linux 上创建 PDF Avery 标签?

linux - 权限被拒绝在 Linux 上的 Netbeans 上创建 Maven 企业应用程序

windows - USB设备驱动开发步骤