我有不同的進程在Linux中同時訪問命名管道,我想讓這個訪問互斥。如何在Linux和C中使用文件作爲互斥體?
我知道有可能實現使用共享內存區域中的互斥鎖,但這是一種家庭作業,我有一些限制。
因此,我想到的是在文件上使用鎖定原語來實現互斥;我做了一些嘗試,但我無法使它工作。
這是我的嘗試:
flock(lock_file, LOCK_EX)
// critic section
flock(lock_file, LOCK_UN)
不同的項目將使用不同的文件描述符,但指的是同一個文件。 是否有可能實現類似的目標?你能舉一些例子嗎?
不。使用互斥鎖。 –
我無法使用互斥體!我不想讓事情複雜化,但是這必須以這種方式完成 – Simone
也許你應該解釋爲什麼要使用文件而不是真正的互斥體...... – Macmade