2015-01-26 80 views
0

這個論壇的新手 - 看起來不錯! 我有一些處理代碼,定期從遠程設備無線讀取數據,並將該數據作爲字節寫入文件,例如data.dat文件。我想使用Xcode在Mac Mini上編寫Objective C程序來讀取此文件,解析數據並在數據值指示問題時對數據執行操作。我的問題是:我的兩個不同的程序可以異步訪問相同的文件嗎?如果這個一個問題,你可以建議一種技術,將允許這些操作? 謝謝, Kevin H.兩個程序訪問一個文件

+0

使用標籤時請多加註意。 「Processing」是一種編程語言,你的問題與該語言無關。 – 2015-01-27 02:59:51

+0

感謝您的評論。我將來會更加小心。雖然我沒有明確說明,Processing代碼寫入文件,我想用我的C代碼讀取該文件,所以在技術上,我的問題確實與Processing有關,但我沒有說清楚。 – kjhart0133 2015-01-27 21:00:05

回答

0

多個進程可以一次讀取同一個文件,沒有任何問題。一個進程也可以從一個文件中讀取,而另一個寫入沒有問題,但是你必須小心確保你讀入任何寫入的新數據。儘管如此,多個進程不應該寫入同一個文件。操作系統會讓你這樣做,但是數據的排序是不確定的,你會喜歡覆蓋數據 - 總的來說,如果你這樣做,你會有一段糟糕的時間。所以你應該注意確保一次只有一個進程寫入文件。

保護文件以便一次只能有一個進程可以寫入的最簡單方法是使用C函數flock(),儘管該函數有一點基本,可能會或可能不適合您的用例。

+0

這正好解決了我的問題。感謝您提供有用,簡潔的答案。 – kjhart0133 2015-01-27 21:02:09

相關問題