簡體   English   中英

從2個進程讀取/寫入相同文件

[英]Read/write same file from 2 processes

我有一個有關閱讀文本文件的問題。 考慮到我正在讀取一個文本日志文件,該文件正在由其他進程連續寫入。 如果其他進程試圖在我讀取文件的同時完全寫入文件,會發生什么情況。 我的程序會崩潰嗎? (我以只讀模式打開文件)

如果以上情況導致崩潰,“ tail -f”命令如何工作?

每次嘗試讀取時都鎖定文件是一個好的解決方案嗎?

實際上,我有一個使用wxTextFile類進行讀取的程序。 默認情況下,wxTextFile以read/write模式打開文件,在某些情況下,我的程序崩潰了。 因此,如果我使用一些C函數並以只讀模式打開文件,是否可以保證程序不會崩潰(如果有時讀取一些亂碼,也可以)。

您的問題有點/完全取決於系統。 首先,您需要一個允許多個讀取器/單個寫入器的系統。 大多數系統都支持此功能,因此在很大程度上是理論上的障礙。

假設您可以執行此操作。

您將打開該文件以供閱讀。 還有其他一些過程可供編寫。

如果您嘗試同時閱讀別人的文章,那完全可以。 唯一的問題是,如果您嘗試讀取寫入器正在同時寫入的塊。 因此,您獲得的數據是不可預測的,但您應該能夠讀取。

簡而言之,同時讀取和寫入本身不會導致程序崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM