当我使用带有2012-12-12 12:00:00
冒号的文件名时,fopen将失败,错误为Invalid argument
。如果我将文件名更改为2012-12-12 12-00-00
,它就会正常运行。 errno 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);
答案 0 :(得分:2)
我认为问题出现是因为冒号:
用作* NIX系统下的路径列表分隔符(例如,用于分隔PATH
环境变量中列出的路径名)。可能有些内部处理因此而出错。