我正在使用Qt进行项目。我将从unistd.h中读取一个文件,但是我怎么能这样做呢?我试图使用无限循环但我的应用程序崩溃时,我这样做。
PS我是Qt和fileoperation(unistd.h)的初学者。
int fd;
char c;
fd = open("/home/stud/txtFile", O_RDWR);//open file
if(fd == -1)
cout << "can't open file" << endl;
read(fd, (void*)&c, 1);
if(c == '1')
//do stuff
else
//do stuff
答案 0 :(得分:0)
如果您被迫使用低级读(),请确保在阅读之前检查有效的文件描述符。
即使打开失败,您的示例代码仍会尝试读取。
更改为:
fd = open("/home/stud/txtFile", O_RDWR);//open file
if(fd < 0) {
cout << "can't open file" << endl;
// potentially you may want to exit() here
}
else {
read(fd, (void*)&c, 1);
// if done with file for this pass, close it. If you need to read again
// in same program keep it open
close(fd);
}
您的示例代码在阅读后永远不会关闭文件。所以我不知道“继续阅读”是什么意思;如果你的意思是在没有close()的情况下反复打开和阅读该代码,那么你最终会用完描述符。