_getdcwd
, _wgetdcwd
Obtient le chemin d'accès complet du répertoire de travail actuel sur le lecteur spécifié.
Syntaxe
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
Paramètres
drive
Entier non négatif qui spécifie le lecteur (0 = lecteur par défaut, 1 = A, 2 = B, etc.).
Si le lecteur spécifié n’est pas disponible, le gestionnaire de paramètres non valide est appelé. Il est également appelé lorsque le type de lecteur (par exemple, amovible, fixe, CD-ROM, disque RAM ou lecteur réseau) ne peut pas être déterminé. Pour plus d’informations, consultez Validation des paramètres.
buffer
Emplacement de stockage du chemin d’accès ou NULL
.
Si NULL
elle est spécifiée, cette fonction alloue une mémoire tampon d’au moins maxlen
une taille à l’aide malloc
de , et la valeur de retour est _getdcwd
un pointeur vers la mémoire tampon allouée. La mémoire tampon peut être libérée en appelant free
et en lui passant le pointeur.
maxlen
Entier positif différent de zéro qui spécifie la longueur maximale du chemin d'accès, en caractères : char
pour _getdcwd
et wchar_t
pour _wgetdcwd
.
Si maxlen
elle est inférieure ou égale à zéro, le gestionnaire de paramètres non valides est appelé. Pour plus d’informations, consultez Validation des paramètres.
Valeur retournée
Pointeur vers une chaîne qui représente le chemin d'accès complet du répertoire de travail actuel sur le lecteur spécifié, ou NULL
, qui indique une erreur.
Si buffer
elle est spécifiée en tant que NULL
mémoire insuffisante pour allouer maxlen
des caractères, une erreur se produit et errno
est définie sur ENOMEM
. Si la longueur du chemin d’accès incluant le caractère null de fin dépasse maxlen
, une erreur se produit et errno
est définie sur ERANGE
. Pour plus d’informations sur ces codes d’erreur, consultez , , _sys_errlist
_doserrno
et _sys_nerr
.errno
Notes
La fonction _getdcwd
obtient le chemin d'accès complet du répertoire de travail actuel sur le lecteur spécifié et l'enregistre dans buffer
. Si le répertoire de travail actuel est défini sur la racine, la chaîne se termine par une barre oblique inverse (\). Si le répertoire de travail actuel est un répertoire différent de la racine, la chaîne se termine par le nom du répertoire, et non par une barre oblique inverse.
_wgetdcwd
est une version à caractère larges de _getdcwd
, et son paramètre buffer
et sa valeur de retour sont des chaînes à caractères larges. Sinon, _wgetdcwd
et _getdcwd
se comportent de la même façon.
Cette fonction est thread-safe même si elle dépend GetFullPathName
, qui n’est pas thread-safe. Toutefois, vous pouvez violer la sécurité des threads si votre application multithread appelle à la fois cette fonction et GetFullPathName
.
La version de cette fonction qui a le _nolock
suffixe se comporte de façon identique à cette fonction, sauf qu’elle n’est pas thread-safe et n’est pas protégée contre les interférences par d’autres threads. Pour plus d’informations, consultez _getdcwd_nolock
, _wgetdcwd_nolock
.
Quand _DEBUG
et _CRTDBG_MAP_ALLOC
sont définis, les appels vers _getdcwd
et _wgetdcwd
sont remplacés par des appels à _getdcwd_dbg
et _wgetdcwd_dbg
, afin que vous puissiez déboguer des allocations de mémoire. Pour plus d’informations, consultez_getdcwd_dbg
. _wgetdcwd_dbg
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine Tchar.h | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
Spécifications
Routine | En-tête requis |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Consultez l'exemple dans _getdrive
.
Voir aussi
Contrôle d’annuaire
_chdir
, _wchdir
_getcwd
, _wgetcwd
_getdrive
_mkdir
, _wmkdir
_rmdir
, _wrmdir