C++ 从2个进程读取/写入同一文件

C++ 从2个进程读取/写入同一文件,c++,file-io,synchronization,tail,C++,File Io,Synchronization,Tail,我有一个关于阅读文本文件的问题。 考虑我正在阅读一个文本日志文件,它是由其他进程连续写入的。 如果另一个进程在我读取文件的同时尝试写入文件,会发生什么情况。我的程序会崩溃吗?(我以只读模式打开了文件) 如果上述场景导致崩溃,“tail-f”命令是如何工作的 每次我尝试读取时锁定文件是一个好的解决方案吗 实际上,我有一个程序,它使用wxtfile类来读取。默认情况下,wxTextFile以读/写模式打开文件,在某些情况下,我的程序崩溃。因此,如果我使用一些C函数并以只读模式打开文件,它是否能保证程

我有一个关于阅读文本文件的问题。 考虑我正在阅读一个文本日志文件,它是由其他进程连续写入的。 如果另一个进程在我读取文件的同时尝试写入文件,会发生什么情况。我的程序会崩溃吗?(我以只读模式打开了文件)

如果上述场景导致崩溃,“tail-f”命令是如何工作的

每次我尝试读取时锁定文件是一个好的解决方案吗


实际上,我有一个程序,它使用
wxtfile
类来读取。默认情况下,wxTextFile以读/写模式打开文件,在某些情况下,我的程序崩溃。因此,如果我使用一些C函数并以只读模式打开文件,它是否能保证程序不会崩溃(如果有时读取一些乱码值也可以)。

您的问题有点完全依赖于系统。首先,您需要一个允许多个读卡器/单个写卡器的系统。大多数系统都支持这一点,因此这在很大程度上是一个理论障碍

让我们假设你能做到这一点

您将打开该文件进行读取。一些其他的过程已经对写作开放了

如果你试着在别人写作的同时阅读,那完全可以。唯一的问题是,如果您试图读取写入程序同时正在写入的块。因此,您获得的数据是不可预测的,但您应该能够读取


简而言之,同时读写本身不会导致程序崩溃

它不一定会崩溃,但读取的是不可预测的文件IO是同步的。所以,如果文件打开成功,您可以对其执行操作。Ok。实际上我有一个程序,它使用wxTextFile类来读取。默认情况下,wxTextFile以读/写模式打开文件,在某些情况下,我的程序崩溃。因此,如果我使用一些C函数并以只读模式打开文件,它是否能保证程序不会崩溃(如果有时读取一些乱码值也可以)。