【问题标题】:Is fopen only for .txt extension possible?fopen 是否仅适用于 .txt 扩展名?
【发布时间】:2017-08-02 10:35:09
【问题描述】:

我在我的 c++ 代码中使用 fopen 打开一个文本文件。但我发现,这仅适用于 .txt 文件扩展名,例如不适用于 .pcap:

//this works
snprintf(buf, sizeof(buf), "/sdcard/%s.txt", filename);
FILE* f = fopen(buf, "w");

//this not
snprintf(buf, sizeof(buf), "/sdcard/%s.pcap", filename);
FILE* f = fopen(buf, "w");

带有 .pcap f 正在返回 NULL

【问题讨论】:

  • "这仅适用于 .txt 文件扩展名" 不,这根本不是真的。
  • 它适用于任何文件扩展名。
  • 您能否尝试为失败的程序创建一个Minimal, Complete, and Verifiable Example 并向我们展示?另外,对于失败的程序,filename 是什么,它的内容是什么?
  • 关于@PeterJ 关于权利的评论。文件(扩展名为.pcap)是否已经存在?您是否具有覆盖它所需的访问权限?在fopen 呼叫失败后,您检查过errno 吗?
  • 为什么标记为 c++?都是 C。尝试升级到 fstream,你很快就会为自己省去很多痛苦。

标签: c++ fopen file-extension


【解决方案1】:

fopen 是否只能用于 .txt 扩展名?

不,没有这样的限制。无论文件名如何,您都可以打开文件。

带有 .pcap f 正在返回 NULL

返回 null 的是 fopen。您可以使用errno 了解原因。检查您的系统手册以了解错误代码的含义。

【讨论】:

  • 投反对票,因为这提供了 cmets 中尚未询问的任何内容
  • @UKMonkey 从 cmets 复制信息有什么问题?评论不是答案,这确实回答了问题不是吗?
猜你喜欢
  • 2012-06-16
  • 2018-06-07
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多