gpt4 book ai didi

c++ - 用于记录已发送到流的字节数的轻量级方法?

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:06 24 4
gpt4 key购买 nike

我正在编写一个程序,在完成时生成一个大日志文件 (+10GB)。为了拆分它,在我的日志记录功能中,我在写入 n 行后将输出重定向到一个新文件名。

但是,此文件中的某些行可能很大(超过 100k 个字符),有些行不超过 10 个字符,大行可以聚类。我更愿意按字节大小而不是按行拆分输出。

持续跟踪已发送到 C++ 流的字节数的最轻量级方法是什么?

最佳答案

如果您使用的是 std::ostream,请查看 tellp()成员函数,返回放置区的当前位置。您可以将其用作写入字节数的代理。例如:

std::ofstream file(name);
auto i = file.tellp();
// write large log file.
auto j = file.tellp();

if (i != -1 && j != -1) // tellp returns -1 on error.
std::cout << "bytes written: " << j - i << std::endl;

另请注意,tellp 自 C++11 起刷新绑定(bind)的输出流。

关于c++ - 用于记录已发送到流的字节数的轻量级方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585481/

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