0
的Linux: 我已經打開了一個名爲管道 - 我可以看到命名管道常規文件
prw-rw-rw- usrA usrA
但經過我一段時間,其更改爲普通文件
-rw-rw-rw- usrB usrB
任何想法如何可以發生?所有權也改變了。 有趣的是USRA實際上比usrB
的Linux: 我已經打開了一個名爲管道 - 我可以看到命名管道常規文件
prw-rw-rw- usrA usrA
但經過我一段時間,其更改爲普通文件
-rw-rw-rw- usrB usrB
任何想法如何可以發生?所有權也改變了。 有趣的是USRA實際上比usrB
更權限的用戶通過重命名,如本例所示:
mkfifo foo
ls -l foo
touch bar
mv bar foo
ls -l foo
或者這更簡單的例子:
mkfifo foo
ls -l foo
mv foo bar
touch foo
ls -l foo
注意,重命名爲由設置在上的權限控制,該權限包含Unix和Linux中的一個或多個目錄,而不是由重命名的源或目標設置的權限。
似乎一個過程正在改變這一點。不用說,我們需要更多信息來回答 – hek2mgl
如果你在一些代碼庫中工作,我最好的猜測是你的程序在某處錯誤地重新打開命名管道作爲常規文件。 – Donovan
理解..但我想知道我該怎麼做 - 我怎麼才能將FIFO更改爲常規文件...然後我可以追溯它是如何發生的 – excalibur