为什么当我在 Android 中使用带冒号的文件名时,fopen 会打出 errno:22
Why does fopen thown errno:22 when I use the file name with colon in Android?
当我使用带有冒号的文件名时,例如2012-12-12 12:00:00
,fopen将失败,错误Invalid argument
。如果我将文件名更改为2012-12-12 12-00-00
它就会正确。错误Invalid argument
是什么意思?我尝试通过 adb shell
在 Android 中运行命令,我尝试touch
名称中带有冒号的文件,但失败了,但是如果我使用 vi
来新建名称中带有冒号的文件,它是正确的。这是怎么回事?我已经检查了路径,没有问题。
errno = 0;
FILE *fp = fopen("/sdcard/2012-12-12 12:00:00", "a");
if (fp == NULL) {
strerror(errno) // Invalid argument
return;
}
fprintf(fp, "%s", "something");
fclose(fp);
我想出现
这个问题是因为冒号:
在 *NIX 系统下用作路径列表分隔符(例如,分隔 PATH
环境变量中列出的路径名)。可能因此,一些内部处理出错了。
相关文章:
- 从命令行c++发送文本文件名
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 试图创建流或fopen时程序崩溃
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- 在Visual Studio 2019中保存时ReadDirectoryChangesW文件名的问题
- C++:在Windows中浏览名称中带有点的文件名
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- fopen 在 gdb 中返回 NULL
- 不带预处理器的调用方法/文件的文件名/行号
- 在 C++ 中为文件名添加时间戳
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 如何将文件名作为参数传入并正确打开?
- 如何在目录及其子文件夹中构建文件名字符串向量?
- 要求用户输入C++输出文件名
- 检查 fopen 不支持的文件名
- 为什么当我在 Android 中使用带冒号的文件名时,fopen 会打出 errno:22
- 格式化fopen的文件名