_mkdir, _wmkdir

Создает каталог.

Синтаксис


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

Параметры

dirname
Путь для нового каталога.

Возвращаемое значение

Каждая функция возвращает значение 0, если новый каталог успешно создан. При ошибке функция возвращает значение -1 и задает errno следующее.

EEXIST Каталог не был создан, так как dirname это имя существующего файла, каталога или устройства.

ENOENT Путь не найден.

Дополнительные сведения об этих и других кодах возврата см. в разделе errno, _doserrnoи _sys_nerr_sys_errlist.

Замечания

Функция _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