_mkdir, _wmkdir
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _mkdir, _wmkdir.
Creates a new directory.
Syntax
int _mkdir(
const char *dirname
);
int _wmkdir(
const wchar_t *dirname
);
Parameters
dirname
Path for a new directory.
Return Value
Each of these functions returns the value 0 if the new directory was created. On an error, the function returns –1 and sets errno
as follows.
EEXIST
Directory was not created because dirname
is the name of an existing file, directory, or device.
ENOENT
Path was not found.
For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.
Remarks
The _mkdir
function creates a new directory with the specified dirname. _mkdir
can create only one new directory per call, so only the last component of dirname
can name a new directory. _mkdir
does not translate path delimiters. In Windows NT, both the backslash ( \) and the forward slash (/ ) are valid path delimiters in character strings in run-time routines.
_wmkdir
is a wide-character version of _mkdir
; the dirname
argument to _wmkdir
is a wide-character string. _wmkdir
and _mkdir
behave identically otherwise.
Generic-Text Routine Mappings
Tchar.h routine | _UNICODE and _MBCS not defined | _MBCS defined | _UNICODE defined |
---|---|---|---|
_tmkdir |
_mkdir |
_mkdir |
_wmkdir |
Requirements
Routine | Required header |
---|---|
_mkdir |
<direct.h> |
_wmkdir |
<direct.h> or <wchar.h> |
For more compatibility information, see Compatibility in the Introduction.
Libraries
All versions of the C run-time libraries.
Example
// 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" );
}
Sample Output
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