You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向文件末尾写入数据的两种C语言实现方式是否等效?

两种C语言文件写入方法是否等效?

你的判断不正确,两种方法存在核心差异,具体区别如下:

核心行为差异

  • 第一种方法("wb"模式):
    使用"wb"打开文件时,若文件已存在,会直接清空原有所有内容,将文件截断为0长度。之后调用fseek(f,0,SEEK_END)只是将指针定位到空文件的末尾(也就是起始位置),最终写入的整数4会成为文件的唯一内容。

    对应的代码:

    int a = 4;
    FILE *f = fopen("file.txt","wb");
    fseek(f,0,SEEK_END);
    fwrite(&a,sizeof(int),1,f);
    
  • 第二种方法("ab"模式):
    使用"ab"打开文件时,若文件已存在,会保留原有内容,文件指针自动定位到文件末尾,写入的整数4会直接追加到原有内容之后,不会破坏原有数据。

    对应的代码:

    int a = 4;
    FILE *f = fopen("file.txt","ab");
    fwrite(&a,sizeof(int),1,f);
    

唯一的相同场景

只有当目标文件不存在时,两种方法的结果才一致:都会创建新文件,并写入整数4。

内容的提问来源于stack exchange,提问作者sacacorchos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:05:23