从两个进程中读写相同的文件
Read/write same file from 2 processes
我有一个关于阅读文本文件的问题。假设我正在读取一个文本日志文件,该文件正在被其他进程不断写入。如果在我读取文件的同时,另一个进程试图写入该文件,会发生什么?我的程序会崩溃吗?(我以只读模式打开文件)
如果上面的场景导致崩溃,"tail -f"命令是如何工作的?
每次我尝试读取时锁定文件是一个好的解决方案吗?
实际上我有一个使用wxTextFile
类来读取的程序。默认情况下,wxTextFile以read/write
模式打开文件,在某些情况下,我的程序崩溃了。因此,如果我使用一些C函数并以只读模式打开文件,它是否保证程序不会崩溃(如果有时读取一些乱码值是可以的)?
你的问题有点/有点完全取决于系统。首先,您需要一个允许多个读取器/单个写入器的系统。大多数系统都支持这一点,所以这在很大程度上是一个理论上的障碍。
让我们假设你能做到这一点。
您将打开文件以供阅读。
如果你试图在别人写作的同时阅读,那完全没问题。唯一的问题是,如果您试图读取写入器同时正在写入的块。在这种情况下,你得到的数据是不可预测的,但你应该能够读取。
简而言之,同时读和同时写本身不会导致程序崩溃。
相关文章:
- 用C++快速读写文件
- C++中读/写二进制文件
- 为什么使用_access时只读测试对读写文件有效
- 谷歌测试读写同一文件失败
- UWP 是否有同步文件读/写 API
- 为什么SDL_RWFromFile(文件,"w+")不能像它应该的那样读写?它只打开文件进行写入
- 读/写文件导致错误。(javaScript & C++)
- 如何在C++中读/写文件时移动到下一行
- 用cocos2dx(v3.6)读写文件到android错误
- Windows Phone 8和读/写文件
- 在多线程环境(C++)中读/写文件的最佳方式
- 在C++中读写文件
- 在c++中以UNC路径读写文件
- c++在Unix上读写文件
- 如何在c++中使用' fstream '同时读写文件
- 如何使用Qt/ c++创建/读/写文件和存储本地设置与程序
- 在for循环、读写文件时遇到困难
- c++中读写文件的多线程
- 如何读写文件
- 读写文件流C++