_getdcwd, _wgetdcwd

Obtient le chemin d'accès complet du répertoire de travail en cours sur le lecteur spécifié.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans les fenêtres d'exécution.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.

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, B = 2, etc.).

    Si le lecteur spécifié n'est pas disponible, ou le type de lecteur (par exemple, disque virtuel amovible, fixe, CD-ROM, ou lecteur réseau) ne peut pas être déterminé, le gestionnaire de paramètre non valide, qui est décrit dans Validation des paramètres, est appelé.

  • buffer
    Emplacement de stockage pour le chemin d'accès, ou NULL.

    Si NULL est spécifié, cette fonction alloue une mémoire tampon au moins de taille d' maxlen à l'aide de malloc, et la valeur de retour d' _getdcwd est un pointeur vers une mémoire tampon allouée.La mémoire tampon peut être libérée en appelant free et en passant le pointeur.

  • maxlen
    Un 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 n'est pas supérieur à zéro, le gestionnaire de paramètre non valide, qui est décrit dans Validation des paramètres, est appelé.

Valeur de retour

Pointeur vers une chaîne qui représente le chemin d'accès complet du répertoire de travail en cours sur le lecteur spécifié, ou NULL, qui indique une erreur.

Si buffer est spécifié comme NULL et il est mémoire insuffisante pour allouer des caractères d' maxlen, une erreur se produit et errno a la valeur ENOMEM.Si la longueur du chemin d'accès, qui inclut le caractère NULL de fin, dépasse maxlen, une erreur se produit et errno a la valeur ERANGE.Pour plus d'informations sur ces codes d'erreur, consultez errno, _doserrno, _sys_errlist, et _sys_nerr.

Notes

La fonction d' _getdcwd obtient le chemin d'accès complet du répertoire de travail en cours sur le lecteur spécifié et l'enregistre l'adresse buffer.Si le répertoire de travail actuel est défini à la racine, la chaîne se termine par une barre oblique inverse (\).Si le répertoire de travail actuel est placé dans un dossier différent de la racine, la chaîne se termine par le nom du dossier et non d'une barre oblique inverse.

_wgetdcwd est une version à caractère élargi d' _getdcwd, et son paramètre et la valeur de retour d' buffer sont des chaînes à caractères larges.Sinon, _wgetdcwd et _getdcwd se comportent de la même façon.

Cette fonction est thread-safe bien qu'elle dépend d' GetFullPathName, qui est elle-même non thread-safe.Toutefois, vous pouvez violer la sécurité des threads si votre application multithread appelle cette fonction et GetFullPathName.Pour plus d'informations, accédez à MSDN Library puis recherchez GetFullPathName.

La version de cette fonction qui a le suffixe d' _nolock se comporte de manière identique à cette fonction sauf que de ce n'est pas thread-safe et n'est pas protégée d'interférence par d'autres threads.Pour plus d'informations, consultez _getdcwd_nolock, _wgetdcwd_nolock.

Lorsque _DEBUG et _CRTDBG_MAP_ALLOC sont définis, les appels à _getdcwd et l' _wgetdcwd sont remplacés par des appels à _getdcwd_dbg et à _wgetdcwd_dbg afin que vous puissiez déboguer les allocations de mémoire.Pour plus d'informations, consultez _getdcwd_dbg, _wgetdcwd_dbg.

Mappages de routines de texte générique

Routine de Tchar.h

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

Configuration requise

Routine

En-tête requis

_getdcwd

<direct.h>

_wgetdcwd

<direct.h> ou <wchar.h>

Pour plus d'informations de compatibilité, consultez Compatibilité.

Exemple

Consultez l'exemple dans _getdrive.

Équivalent .NET Framework

System::Environment::CurrentDirectory

Voir aussi

Référence

Contrôle de répertoire

_chdir, _wchdir

_getcwd, _wgetcwd

_getdrive

_mkdir, _wmkdir

_rmdir, _wrmdir