我需要在两个 C 应用程序之间共享一台设备。该装置是蜂鸣器。我尝试使用 O_NONBLOCK 标志打开它,但结果是相同的:设备或资源繁忙。
是否有可能将该设备用于两个应用程序?
提前致谢
答案1
在不知道您的确切设备的情况下,我认为内核有充分的理由禁止对其进行并发访问。无论如何,为了允许两个程序准并发访问,您可以引入位于程序和设备之间的第三个程序。该程序可以打开/dev/gpio
并可以通过 UNIX 域套接字 ( socket(2)
) 或命名管道 ( mkfifo(3)
) 接受来自实际程序的命令。