gpt4 book ai didi

C++:fopen() 返回空文件句柄

转载 作者:太空宇宙 更新时间:2023-11-04 13:22:54 27 4
gpt4 key购买 nike

我从 fopen 得到了一个奇怪的文件句柄;指针本身不是 NULL,但它代表的文件没有大小,并且 feof(file) 已经设置...可能是什么原因造成的?

(我对文件本身进行了三次检查,它存在,有数据,并且文件的权限没问题...并且 filename 设置为“source/test_file.object.txt”)

bool tagFile(const char * filename){
FILE * file = fopen(filename, "r");
if(file == NULL){ // file is not NULL
printf(" Couldn't open the file %s", filename);
return false;
}
int size = fseek(file, 0, SEEK_END); // size is 0
rewind(file);
while(feof(file)){

.... // never executes because feof(file) fails
}
}
0x002cc410 // value of 'file' in the debugger
_ptr=0x00000000 <Bad Ptr>
_cnt=0
_base=0x00000000 <Bad Ptr>
_flag = 1
_file = 3

最佳答案

最常见的原因是打开一个空文件。没有要读取的字节,因此 EOF 是立即数,但文件存在,因此 fopen 无法返回 NULL。

关于C++:fopen() 返回空文件句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438998/

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