winapi - mkdir 和 CreateDirectory 之间的区别

标签 winapi mkdir create-directory

mkdir(<name>) 之间有区别吗?和CreateDirectory(<name>, NULL)在 Win32 下。

正如我所见,两者都在工作(以相同的方式??)

最佳答案

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;
}

关于winapi - mkdir 和 CreateDirectory 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24205401/

相关文章:

vba - 如果不存在,则在任何用户的桌面目录中创建一个文件夹

c++ - 使用 SDL2 调整无边界窗口大小时出现错误

PHP mkdir 不工作——可能与 Mac 本地主机有关

c# - 我可以在 C# 中同时创建 2 个子目录吗?

php - 如何让 CodeIgniter 创建新文件夹?

c - 在 C 中错误处理 mkdir 和 chdir?

ios - NSFileManager 的方法 createDirectoryAtPath 在 iOS 上返回错误结果

c++ - 来自 ShellExecuteEx 的意外/不一致行为

c# - 标题栏与菜单合并 - WINFORMS

python - 控制台窗口失去焦点时如何检测按键