管道到我的程序作为一个日志旋转器
Pipe to my program as a log rotator
我正在尝试实现我自己的日志旋转器(每当文件大小达到10 MB时创建新的日志文件)。读取标准输入并将其写入文件的部分如下:
fstream file("log.txt", ios::out | ios::app);
while (std::cin >> lineInput) {
file << lineInput;
}
但是问题是管道数据被破坏了。制表符和新行总是会丢失。例如,如果我的程序名称是LogRotator
,那么命令:
ls | ./LogRotator
只是将所有文件名连接在一起,像这样:
LogRotatormain.oMakefile
,而ls
的输出为:
LogRotator main.o Makefile
我的问题:我如何使标准流保存一切,包括制表符,换行符等?
多亏了Dieter lcking的提示,我找到了做这件事的方法。因此必须使用未格式化的读取。
fstream file("log.txt", ios::out | ios::app);
while (getline(cin,lineInput,'n'))
{
file << lineInput;
}
相关文章:
- 查询事件日志.如何查询才能单独获取第一个和最后一个事件?
- 写一个日志收集器/阅读器,有什么好的设计吗?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 提升日志 V2 轮换保留一个文件作为"master"
- boost::log关闭日志文件并打开一个新文件
- boost.log-一个日志文件的多个进程
- Pantheios:当太大时创建一个新的日志文件
- 如何通过谷歌博客将日志打印到一个文件中
- 提升日志-不同的进程到一个日志文件
- C++:解析拆分但一个条目可以包含多行的日志
- 一个方便的C++日志记录语句,使用boost::格式
- 创建一个简单的窗口来输出用于调试的信息(日志样式)- wxWidgets
- 一个可以指定基数的c++日志实现
- 日志程序在一个单独的c++线程中
- 多个日志程序写入一个文件
- 创建一个没有时间字符串的Google日志文件
- 管道到我的程序作为一个日志旋转器
- 施放一个提升::日志::表达式::attr< std::string > to std::string
- 如何创建一个宏来验证HR和日志
- 我可以得到一个日志的优化应用的编译器