我有不同的进程在Linux中同时访问命名管道,我想让这个访问互斥。如何在Linux和C中使用文件作为互斥体?
我知道有可能实现使用共享内存区域中的互斥锁,但这是一种家庭作业,我有一些限制。
因此,我想到的是在文件上使用锁定原语来实现互斥;我做了一些尝试,但我无法使它工作。
这是我的尝试:
flock(lock_file, LOCK_EX)
// critic section
flock(lock_file, LOCK_UN)
不同的项目将使用不同的文件描述符,但指的是同一个文件。 是否有可能实现类似的目标?你能举一些例子吗?
不。使用互斥锁。 –
我无法使用互斥体!我不想让事情复杂化,但是这必须以这种方式完成 – Simone
也许你应该解释为什么要使用文件而不是真正的互斥体...... – Macmade