c++ 实现“实时”读取不断有增量写入的文本文件
2013-09-25 14:36
1961 查看
啥也别说,先上代码
编译
参数说明
in_file 是要读取文件路径
max_time 是时间戳,若大于此时间,并且读到文件末尾,则退出程序
测试,读取f.log, 60秒后若读到文件结尾,则退出
/* * File: readuntil.cpp * Author: @肖武 <tsxw24@gmail.com> * * Created on 2013年8月30日, 上午10:44 */ #include <iostream> #include <fstream> #include <string> #include <unistd.h> #include <ctime> #include <cstdlib> using namespace std; int main(int argc, char* argv[]) { if (argc != 3){ cout<<argv[0]<<" [in_file] [max_time]"<<endl; return 1; } time_t max_time = atol(argv[2]); ifstream ifs; ifs.open(argv[1], ios::in); if (!ifs) { cout<<"open erro"<<endl; return 1; } string row; size_t seek; time_t t; do{ if (ifs.peek() == EOF) { time(&t); if (t>max_time){ break; } ifs.clear(); ifs.seekg(seek, ios::beg); sleep(3); continue; } getline(ifs, row); cout<<row<<endl; seek = ifs.tellg(); }while(1); ifs.close(); return 0; }
编译
$ g++ readuntil.cpp
参数说明
$ ./a.out ./a.out [in_file] [max_time]
in_file 是要读取文件路径
max_time 是时间戳,若大于此时间,并且读到文件末尾,则退出程序
测试,读取f.log, 60秒后若读到文件结尾,则退出
$ ./a.out f.log $[`date '+%s'`+60] 123 adsf adsf sadddd sddsd
相关文章推荐
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- C++实现文件简单加密与解密(读取文件中的字符,对字符转换,然后写入,完成加密,解密反之)
- 简单文件操作(Linux下C++实现) 打开,读取 写入 关闭
- 在C++中使用conio.h 实现实时键盘输入读取 (即不需要回车)
- java实时读取和写入文件(线程实现)
- C# 创建文本文件写入读取实现代码
- 黑马程序员——Java---io流--文本文件读取写入的实现
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- linux下c语言实现tail -f功能---实时读取变化文件中的增量内容
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- C++实时处理不断被写入的文件
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- C++实现文件写入和读取
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- C++实现逐行从文本文件读取数据
- linux下c语言实现tail -f功能---实时读取变化文件中的增量内容
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- 用java代码实现从excel表格读取数据然后写入生成国际化配置文件properties
- 文件磁盘相关函数[19]-文本文件读写-读取全部的实现