linux 用fopen打开二进制文件,修改里面的内容,并保存操作
时间: 2024-05-12 22:18:53 浏览: 100
下面是一个示例程序,它打开一个二进制文件,将其中一个字节修改为0x33,并保存文件。
```
#include <stdio.h>
int main()
{
FILE *fp;
char buf[1];
fp = fopen("test.bin", "rb+");
if (fp == NULL) {
printf("Failed to open file.\n");
return -1;
}
fseek(fp, 10, SEEK_SET);
fread(buf, 1, 1, fp);
printf("Original byte: %02X\n", buf[0]);
buf[0] = 0x33;
fseek(fp, -1, SEEK_CUR);
fwrite(buf, 1, 1, fp);
fclose(fp);
printf("File saved.\n");
return 0;
}
```
解释一下代码:
- 第3行:定义一个文件指针变量。
- 第4行:定义一个1字节大小的缓冲区,用于读取和写入文件。
- 第5行:以“rb+”模式打开文件,表示以二进制读写模式打开文件。
- 第6-9行:如果文件打开失败,输出错误信息,返回-1。
- 第10行:将文件指针移动到文件中的第11个字节(从0开始计数),即要修改的位置。
- 第11行:从文件中读取1字节到缓冲区中。
- 第12行:输出原始字节的值。
- 第13行:将缓冲区中的字节修改为0x33。
- 第14行:将文件指针移动回到要修改的位置。
- 第15行:将缓冲区中的字节写入文件中。
- 第16行:关闭文件。
- 第17行:输出保存成功的消息。
- 第18行:程序结束。
阅读全文