我正在使用 linux 平台 (Ubuntu) 和 QT4.7.4 ,
首先,我使用 vi 创建了一个测试文件“test.txt”,只需在其中写入 100000 行“1234567890”,
然后我编译并运行下面的代码,在我的监督下,它进入无限循环,
有什么想法吗?谢谢!
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QString str;
QFile file("./test.txt");
if ( file.open(QIODevice::ReadOnly | QIODevice::Text) ) {
QTextStream ts( &file );
while(!ts.atEnd()) {
str = ts.read(10240);
qDebug()<<"s:"<<ts.status()<<":"<<ts.atEnd()<<":"<<str.count()<<":"<<ts.pos();
}
}
return app.exec();
}
这是 qdebug 输出:
s: 0 : false : 10240 : 10240
s: 0 : false : 10240 : 20480
s: 0 : false : 10240 : 51200
s: 0 : false : 10240 : 112640
s: 0 : false : 10240 : 235520
s: 0 : false : 10240 : 481280
s: 0 : false : 10240 : 972800
s: 0 : false : 10240 : -1
s: 0 : false : 10240 : -1
s: 0 : false : 10240 : -1
s: 0 : false : 10240 : -1
s: 0 : false : 10240 : -1
s: 0 : false : 10240 : -1
s: 0 : false : 10240 : -1
....
这里有一些关于 test.txt 的信息
$du -sh test.txt
1.1M test.txt
$wc -c test.txt
1100011 test.txt
$du -S test.txt
1076 test.txt