我有一个小问题,我需要从我的c代码或C++中创建目录,没关系。 但目录名称必须包含':','','。'等字符。在目前的一般时间, 当我尝试创建与mkdir()
函数我得到EINVAL错误,但从system("mkdir ...")
一切都很好。 我该如何解决这个问题?mkdir,带有符号的路径名
谢谢!!!
我有一个小问题,我需要从我的c代码或C++中创建目录,没关系。 但目录名称必须包含':','','。'等字符。在目前的一般时间, 当我尝试创建与mkdir()
函数我得到EINVAL错误,但从system("mkdir ...")
一切都很好。 我该如何解决这个问题?mkdir,带有符号的路径名
谢谢!!!
不同的文件系统格式对于什么是和不是有效的字符有不同的规则。对于ext2
及其后代,文件名可能包含除'/'
或'\0'
以外的任何字符。
对于FAT文件系统及其后代,无效字符列表较大,包括':'
。
检查您正在使用的文件系统格式,并尝试在不同的文件系统上运行您的程序。
你可以给一个与shell mkdir而不是mkdir()一起使用的例子吗?另外手册页甚至没有列出'EINVAL'作为可能的错误代码之一,这让你很奇怪你看到它。 – FatalError 2012-04-04 16:31:54
你能发布一段代码吗?听起来好像文件名没有正确转义的特殊字符? – rfinz 2012-04-04 16:32:56
mkdir()在成功时返回零,在错误集合上返回-1 * errno *。 EINVAL不是mkdir()记录的* errno *值。如果你为每个字段使用固定数量的数字,在任何情况下都不是分隔符字符有点多余? – Clifford 2012-04-04 18:10:13