我有一个问题,正在尝试解决Linux中的串口问题。我能够很好地打开、读取和关闭端口。然而,我想确保在任何给定时间,只有我能够读写该端口。
我认为在调用open()函数后已经为我完成了这个任务。但是,在我的程序中,我可以多次调用同一端口上的open()。我还可以拥有两个同时从同一端口读取的线程。
我试图使用flock()来解决这个问题,但仍然存在相同的问题。这是因为两个系统调用都来自相同的pid,即使每组打开和读取都涉及不同的文件描述符?记录一下,两个open()调用确实返回了有效的文件描述符。
因此,我想知道是否有任何方法可以解决我的问题。从我的程序的角度来看,如果在同一端口上成功调用两次open(),这并不是一个大问题,因为程序员应该意识到他们所引起的滑稽。然而,我只想确保当我打开一个端口时,我是唯一能够访问它的进程。
感谢您的帮助。