|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
int main(int argc , char *argv[])
{
FILE *fp = NULL;
char buffer[100]= {0};
int nbyte = 0;
int flen = 0;
fp = fopen("Slave.pib","r+");
printf("1-----fp = %02x\n",(unsigned int )fp);
if(fp == NULL)
{
printf("open file fail!\n");
return -1;
}
fseek(fp, 0 , SEEK_END);
printf("2-----fp = %02x\n",(unsigned int )fp);
flen = ftell(fp);
printf("flen = %d\n", flen);
fseek(fp, 0 , SEEK_SET);
nbyte = fread(buffer,1, flen, fp);
if(nbyte != flen)
{
printf("nbyte = %d\n",nbyte);
printf("read file fail!\n");
return -1;
}
else
{
int i= 0;
for(i = 0; i < flen; i ++)
{
printf("%02x ", buffer[i]);
}
printf("\n");
}
fclose(fp);
return 0;
}
代码如上,感觉没有什么问题,但是确读不到数据。下面有几个问题
(1) fopen一个文件后得到一个fp,如果fseek将文件指针移动之后,fp的值是否会改变。根据上面打印看printf("1-----fp = %02x\n",(unsigned int )fp); 和printf("2-----fp = %02x\n",(unsigned int )fp);的值是一样的。
(2)按照上面的写法,flen为什么一直等于0呢?没看出来哪个地方写的不对呢。
求各位大神赐教!!! |
|