Win32下的mkdir(<name>)
和CreateDirectory(<name>, NULL)
之间是否存在差异。
我可以看到,两者都在工作(以同样的方式??)
答案 0 :(得分:6)
mkdir
(推荐的_mkdir是运行时库函数。CreateDirectory
是Windows特有的。如果你想要可移植代码,请致电_mkdir
。如果你没事的话使您的程序特定于Windows,或者您需要能够添加安全描述符,然后调用CreateDirectory
。
最有可能的是,Windows的_mkdir
实现调用了CreateDirectory(name, NULL)
。所以两人最终都做同样的事情。
编辑:_mkdir()的Visual Studio 12实现调用_wmkdir(),然后调用CreateDirectoryW:
int __cdecl _wmkdir (
const wchar_t *path
)
{
ULONG dosretval;
/* ask OS to create directory */
if (!CreateDirectoryW(path, (LPSECURITY_ATTRIBUTES)NULL))
dosretval = GetLastError();
else
dosretval = 0;
if (dosretval) {
/* error occured -- map error code and return */
_dosmaperr(dosretval);
return -1;
}
return 0;
}