我的 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/