打开二进制文件

在 windows 系统下,打开一个流媒体文件,是二进制文件;

所以,读取方式的 "rb" 如下:

    //fp = fopen(pcmd->file, "r"); //读取 txt 文本文件;
    fp = fopen(pcmd->file, "rb"); //读取二进制文件;


1、在打开文件的同时删除文件的内容。

 FILE* fp;     
 fp = fopen("c:\test12.txt","w");  
 if(fp==NULL)     
     return 0;  
 fclose(fp);     


有时候需要包含 

#include <io.h>

"w" Opens an empty file for writing. If the given file exists, its contents are destroyed.

//========================================================================

所以,使用 "w" 选项,可以在打开文件的时候,把文件的内容清除;

//========================================================================

C语言没有直接可以清空文件内容的函数但可以通过fopen函数带有“w”的打开方式,

间接实现清空文件,测试代码如下,

#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp=NULL;
fp=fopen("out.dat","w");//假设当前目录有out.dat文件,且文件非空
if(!fp)//检查文件打开是否正常
{
printf("文件打开失败,程序退出!\n");
exit(1);
}
printf("文件内容已经清楚!\n");
if(fp)//关闭文件
{
fclose(fp);
fp=NULL;
}
return 0;
}

FILE *fopen( const char *fname, const char *mode );

fopen函数打开由fname(文件名)指定的文件,并返回一个关联该文件的流.如果发生错误,fopen返回NULL。

“w”模式打开只写文件,若文件存在则文件长度清为0,即该文件内容会被清楚;若文件不存在则建立该文件。

//========================================================================


 

只需要99元就可以投资自己,掌握Linux系统编程!主要传授《Linux C/C++程序设计》《Linux 系统编程》,主页有学习视频!
只需要99元就拥有全部课程和资料,让我们用技术改变自己,改变生活,改变世界!
视频可以百度搜索:韦凯峰Linux编程学堂

在 C 语言中,使用 `fopen` 函数打开二进制文件时,需要在模式字符串中添加字符 `'b'`,以指示函数库当前操作的是二进制文件[^1]。虽然在 POSIX 系统(如 Linux)中,该字符会被忽略,但为了保证代码的可移植性,建议仍然添加 `'b'` 字符。 `fopen` 函数的原型如下: ```c FILE *fopen(const char *filename, const char *mode); ``` 其中 `mode` 参数用于指定文件的打开方式。在打开二进制文件时,可以使用以下模式组合: - `"rb"`:以只读方式打开一个已存在的二进制文件。 - `"wb"`:以写入方式打开一个二进制文件,若文件不存在则创建,若存在则清空内容。 - `"ab"`:以追加方式打开一个二进制文件,若文件不存在则创建,写入操作始终在文件末尾进行。 - `"r+b"`:以读写方式打开一个已存在的二进制文件,写入操作不会清空文件内容。 - `"w+b"`:以读写方式打开一个二进制文件,若文件不存在则创建,若存在则清空内容。 - `"a+b"`:以读写方式打开一个二进制文件,写入操作始终在文件末尾进行,读取操作可以从任意位置进行[^1]。 以下是一个使用 `fopen` 打开二进制文件的示例: ```c #include <stdio.h> int main(void) { FILE *file = fopen("example.bin", "w+b"); if (file == NULL) { printf("Failed to open binary file\n"); return 1; } else { printf("Success to open binary file\n"); // 写入数据到二进制文件 int data = 0x12345678; fwrite(&data, sizeof(int), 1, file); // 关闭文件 fclose(file); printf("File closed\n"); } return 0; } ``` 在此示例中,程序尝试以读写和创建方式打开名为 `example.bin` 的二进制文件。若打开成功,则输出提示信息并写入一个整型变量的数据到文件中,最后调用 `fclose` 函数关闭文件。若打开失败,则输出错误信息并返回。 需要注意的是,`fopen` 所创建的新文件默认具有权限 `S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH`(即 `0666`),但实际权限会受到 `umask` 设置的影响。此外,在调用 `fclose` 函数后,文件指针 `file` 将变为无效值,后续若再次使用该指针进行读写操作,将导致未定义行为。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值