【发布时间】: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