求助:以rb+打开文件,读取到文件结尾,开始写文件,则写文件失败,不知道为什么
以下是源码
本意是想打开一个二进制文件,在其尾部加入一些特定信息如程序名称 版本号 校验值等
但是每次写文件都会返回失败,不知道为什么,获取的错误码是32
请各位帮忙分析分析,原因是什么,在此谢过了
本意是想打开一个二进制文件,在其尾部加入一些特定信息如程序名称 版本号 校验值等
但是每次写文件都会返回失败,不知道为什么,获取的错误码是32
请各位帮忙分析分析,原因是什么,在此谢过了
//返回值 0:失败 1:成功
int fill_bin_file(char *filename,unsigned char file_data,long size)
{
FILE *fp;
long cur_size;
unsigned char val;
int j;
//============打开文件
fp = fopen(filename,"rb+");
if (fp == NULL)
{
printf("open file fail\n");
return 0;
}
//==========获取文件的当前长度
if (fseek(fp,0,SEEK_END)!=0)
{
printf("seek file fail\n");
fclose(fp);
return 0;
}
cur_size = ftell(fp);
//==========校验文件长度
if ((cur_size == -1)||(cur_size+32 >= size))
{
printf("get file size fail\n");
fclose(fp);
return 0;
}
printf("file current size is : %u\n",cur_size);
//=========计算从文件开始到当前位置的异或校验
crc_val = 0;
j=0;
if (fseek(fp,0,SEEK_SET)!=0)
{
printf("seek file fail\n");
fclose(fp);
return 0;
}
while(j<cur_size)
{
if (fread(&val,1,1,fp)!=1)
{
printf("read file error\n");
fclose(fp);
return 0;
}
crc_val ^= val;
j++;
}
//===========填充文件
while (cur_size < size-32)
{
if(fwrite(&file_data,1,1,fp)!=1)
{
printf("write file fail\n");
fclose(fp);
return 0;
}
cur_size++;
crc_val ^= file_data;
}
//==========填写后缀信息
//填写程序名
for (j=0;j<10;j++)
{
fwrite(&dev_type[j],1,1,fp);
cur_size++;
crc_val ^= dev_type[j];
}
//填写版本
for (j=0;j<10;j++)
{
fwrite(&version[j],1,1,fp);
cur_size++;
crc_val ^= version[j];
}
//填写保留
for (j=0;j<11;j++)
{
fwrite(&file_data,1,1,fp);
cur_size++;
crc_val ^= file_data;
}
//填写校验
fwrite(&crc_val,1,1,fp);
fclose(fp);
return 1;
}
...全文
相关推荐
c语言打开文件函数使用方法
如果文件存在,则从文件末尾开始写入;如果文件不存在,则会创建新文件。2. **二进制文件模式** - `"rb"`:以只读方式打开二进制文件。 - `"wb"`:以只写方式打开二进制文件。
C语言实现二进制文件读写详解
若文件不存在则建立该文件。* `w+`:打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。* `a`:以附加的方式打开只写文件。
C语言文件读写代码+文档解析
文件打开模式包括但不限于:- `"r"`:以只读方式打开文本文件,文件必须存在。- `"w"`:以只写方式打开文本文件,如果文件已存在则将其长度设置为0,如果文件不存在则尝试创建该文件。
PHP文件打开关闭及读写操作示例解析
- r+:读写模式。文件指针位于文件开头。- w+:读写模式。文件指针位于文件开头,如果文件存在则内容会被清空。- x+:谨慎读写模式。如果文件已存在,则打开失败。- a+:追加读写模式。
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
本文主要介绍了Python中的文件操作,包括读取文件、文件指针和写入文件的相关概念和示例代码。通过实例演示了如何使用`open()`函数以不同的模式打开文件,以及如何使用`read()`和`writ


