使用 ofstream 对正在写入的文件进行 cat 或 tail 安全吗?
我正在运行一个 C++ 脚本,该脚本使用 std::ofstream
写入文件。该脚本需要很长时间,并且我想在运行时监视写入文件的内容。
从单独的 shell 窗口 cat
我的 .txt 文件是否安全?使用 tail -f myfile.txt
怎么样?
我正在使用 macOS Catalina,并且还在 Ubuntu 云实例中运行该脚本。
I'm running a C++ script that writes to a file using std::ofstream
. The script takes a very long time, and I want to monitor what's been written to the file as it's running.
Is it safe to cat
my .txt file from a separate shell window? What about using tail -f myfile.txt
?
I'm using macOS Catalina and I'm also running the script in a Ubuntu cloud instance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
cat
将打印文件的当前内容并退出。tail -f
将继续等待新数据附加到文件中以打印它,直到您手动终止它。除了行为上的差异之外,这两种方法都没有什么“不安全”之处,至少在一般意义上是这样。
我不确定如果您将流位置移动到文件末尾以外的其他位置,它们将如何表现。
cat
will print the current contents of the file and exit.tail -f
will keep waiting for new data to be appended to the file to print it until you terminate it manually.Aside from the difference in behavior there is nothing "unsafe" about either method, at least not in a general sense.
I am not sure how they will behave if you move the stream position to write somewhere else than the end of the file.