Skip to content

Latest commit

 

History

History
95 lines (66 loc) · 4.97 KB

getdcwd-wgetdcwd.md

File metadata and controls

95 lines (66 loc) · 4.97 KB
description title ms.date api_name api_location api_type topic_type f1_keywords helpviewer_keywords ms.assetid
Learn more about: _getdcwd, _wgetdcwd
_getdcwd, _wgetdcwd
4/2/2020
_getdcwd
_wgetdcwd
_o__getdcwd
_o__wgetdcwd
msvcrt.dll
msvcr80.dll
msvcr90.dll
msvcr100.dll
msvcr100_clr0400.dll
msvcr110.dll
msvcr110_clr0400.dll
msvcr120.dll
msvcr120_clr0400.dll
ucrtbase.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
DLLExport
apiref
wgetdcwd
getdcwd
_getdcwd
tgetdcwd
_wgetdcwd
_tgetdcwd
wgetdcwd function
working directory
getdcwd function
_getdcwd function
_wgetdcwd function
current working directory
directories [C++], current working
184152f5-c7b0-495b-918d-f9a6adc178bd

_getdcwd, _wgetdcwd

Gets the full path of the current working directory on the specified drive.

Syntax

char *_getdcwd(
   int drive,
   char *buffer,
   int maxlen
);
wchar_t *_wgetdcwd(
   int drive,
   wchar_t *buffer,
   int maxlen
);

Parameters

drive
A non-negative integer that specifies the drive (0 = default drive, 1 = A, 2 = B, and so on).

If the specified drive isn't available, the invalid parameter handler is invoked. It's also invoked when the kind of drive (for example, removable, fixed, CD-ROM, RAM disk, or network drive) can't be determined. For more information, see Parameter validation.

buffer
Storage location for the path, or NULL.

If NULL is specified, this function allocates a buffer of at least maxlen size by using malloc, and the return value of _getdcwd is a pointer to the allocated buffer. The buffer can be freed by calling free and passing it the pointer.

maxlen
A nonzero positive integer that specifies the maximum length of the path, in characters: char for _getdcwd and wchar_t for _wgetdcwd.

If maxlen is less than or equal to zero, the invalid-parameter handler is invoked. For more information, see Parameter validation.

Return value

Pointer to a string that represents the full path of the current working directory on the specified drive, or NULL, which indicates an error.

If buffer is specified as NULL and there's insufficient memory to allocate maxlen characters, an error occurs and errno is set to ENOMEM. If the length of the path including the terminating null character exceeds maxlen, an error occurs, and errno is set to ERANGE. For more information about these error codes, see errno, _doserrno, _sys_errlist, and _sys_nerr.

Remarks

The _getdcwd function gets the full path of the current working directory on the specified drive and stores it at buffer. If the current working directory is set to the root, the string ends with a backslash (\). If the current working directory is set to a directory other than the root, the string ends with the name of the directory and not with a backslash.

_wgetdcwd is a wide-character version of _getdcwd, and its buffer parameter and return value are wide-character strings. Otherwise, _wgetdcwd and _getdcwd behave identically.

This function is thread-safe even though it depends on GetFullPathName, which is itself not thread-safe. However, you can violate thread safety if your multithreaded application calls both this function and GetFullPathName.

The version of this function that has the _nolock suffix behaves identically to this function except that it isn't thread-safe and isn't protected from interference by other threads. For more information, see _getdcwd_nolock, _wgetdcwd_nolock.

When _DEBUG and _CRTDBG_MAP_ALLOC are defined, calls to _getdcwd and _wgetdcwd are replaced by calls to _getdcwd_dbg and _wgetdcwd_dbg, so that you can debug memory allocations. For more information, see_getdcwd_dbg, _wgetdcwd_dbg.

By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.

Generic-text routine mappings

Tchar.h routine _UNICODE and _MBCS not defined _MBCS defined _UNICODE defined
_tgetdcwd _getdcwd _getdcwd _wgetdcwd

Requirements

Routine Required header
_getdcwd <direct.h>
_wgetdcwd <direct.h> or <wchar.h>

For more compatibility information, see Compatibility.

Example

See the example in _getdrive.

See also

Directory control
_chdir, _wchdir
_getcwd, _wgetcwd
_getdrive
_mkdir, _wmkdir
_rmdir, _wrmdir