gpt4 book ai didi

c++ - 如何读取已在使用的文本文件 (Windows C++)

转载 作者:行者123 更新时间:2023-11-30 02:44:34 27 4
gpt4 key购买 nike

我有一个使用 std::ofstream 创建文本日志文件的应用程序,使用 std::ofstream::app 创建它。此应用程序经常写入日志,有时仅相隔几毫秒。

我想编写第二个应用程序来读入并分析这个日志文件而第一个应用程序仍在写入它

我有一些工作代码,使用 ifstream,加载和处理一个独立的文本日志文件,但是当我尝试在当前正在写入的文本日志文件上使用它时,这段代码失败了with "该进程无法访问该文件,因为它正被另一个进程使用。"

如何调整我的日志阅读器以允许我读取当前正在写入的文本文件(Notepad++ 可以对同一文件执行此操作!)?

最佳答案

在 Windows 上,您可以将第三个参数传递给流构造函数/open 以允许共享,例如

std::ofstream of("path", of.app, _SH_DENYNO);

(int)ios_base::_Openprot 默认传递,它是一个 enum 设置为 _OPENPROT,它又定义为 _SH_DENYNO 所以它应该在没有指定标志的情况下工作,我不太确定为什么它在你的情况下没有,你是否尝试过遵循 VS 中的定义或调试代码?

引用:

http://msdn.microsoft.com/en-us/library/y1et11xw(v=vs.110).aspx

http://msdn.microsoft.com/en-us/library/kexhtshc(v=vs.110).aspx

关于c++ - 如何读取已在使用的文本文件 (Windows C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25176714/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com