_mkdir_wmkdir

新建目录。

语法


int _mkdir(
   const char *dirname
);
int _wmkdir(
   const wchar_t *dirname
);

参数

dirname
新目录的路径。

返回值

如果创建新目录,这些函数都将返回值 0。 发生错误时,函数将返回 - 1,并将 errno 进行如下设置。

EEXIST未创建目录,因为 dirname 为现有文件、目录或设备的名称。

找不到 ENOENT 路径。

有关这些和其他的返回代码的详细信息,请参阅 errno_doserrno_sys_errlist_sys_nerr

注解

_mkdir 函数使用指定的 dirname 创建新目录。 每次调用 _mkdir 仅能创建一个新目录,因此只有 dirname 的最后一个组件可以命名新目录。 _mkdir 不会转换路径分隔符。 在 Windows NT 中,反斜杠 (\) 和正斜杠 (/) 在运行时例程中都是字符串的有效路径分隔符。

_wmkdir_mkdir的宽字符版本; dirname_wmkdir 参数是宽字符字符串。 除此以外,_wmkdir_mkdir 的行为完全相同。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

一般文本例程映射

Tchar.h 例程 _UNICODE_MBCS 未定义 _MBCS 已定义 _UNICODE 已定义
_tmkdir _mkdir _mkdir _wmkdir

要求

例程 必需的标头
_mkdir <direct.h>
_wmkdir <direct.h><wchar.h>

有关兼容性的详细信息,请参阅 兼容性

C 运行时库的所有版本。

示例

// crt_makedir.c

#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   if( _mkdir( "\\testtmp" ) == 0 )
   {
      printf( "Directory '\\testtmp' was successfully created\n" );
      system( "dir \\testtmp" );
      if( _rmdir( "\\testtmp" ) == 0 )
        printf( "Directory '\\testtmp' was successfully removed\n"  );
      else
         printf( "Problem removing directory '\\testtmp'\n" );
   }
   else
      printf( "Problem creating directory '\\testtmp'\n" );
}

示例输出

Directory '\testtmp' was successfully created
Volume in drive C has no label.
Volume Serial Number is E078-087A

Directory of C:\testtmp

02/12/2002  09:56a      <DIR>          .
02/12/2002  09:56a      <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  15,498,690,560 bytes free
Directory '\testtmp' was successfully removed

另请参阅

目录控制
_chdir_wchdir
_rmdir_wrmdir