Partager via


_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 mallocde , 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_doserrnoet _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