_getdrives
Retorna um bitmask que representa as unidades de disco disponíveis no momento.
Importante
Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
unsigned long _getdrives( void );
Valor retornado
Se a função for bem-sucedida, o valor retornado será um bitmask que representa as unidades de disco disponíveis no momento. A posição do bit 0 (o bit menos significativo) representa a unidade A. Da mesma forma, a posição do bit 1 representa a unidade B, a posição do bit 2 representa a unidade C e assim por diante. Se a função falhar, o valor retornado será zero. Para obter outras informações sobre o erro, chame GetLastError
.
Comentários
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_getdrives |
<direct.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_getdrives.c
// This program retrieves and lists out
// all the logical drives that are
// currently mounted on the machine.
#include <windows.h>
#include <direct.h>
#include <stdio.h>
#include <tchar.h>
TCHAR g_szDrvMsg[] = _T("A:\n");
int main(int argc, char* argv[]) {
ULONG uDriveMask = _getdrives();
if (uDriveMask == 0)
{
printf( "_getdrives() failed with failure code: %d\n",
GetLastError());
}
else
{
printf("The following logical drives are being used:\n");
while (uDriveMask) {
if (uDriveMask & 1)
printf(g_szDrvMsg);
++g_szDrvMsg[0];
uDriveMask >>= 1;
}
}
}
The following logical drives are being used:
A:
C:
D:
E: