_getdrives

返回一个表示当前可用的磁盘驱动器的位掩码。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数

语法

unsigned long _getdrives( void );

返回值

如果函数成功,则返回值是一个表示当前可用的磁盘驱动器的位掩码。 位位置 0(最小有效位)表示驱动器 A。同样,位位置 1 表示驱动器 B、位位置 2 表示驱动器 C,依此类推。 如果函数失败,则返回值为零。 若要获得扩展的错误信息,请调用 GetLastError

备注

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

例程 必需的标头
_getdrives <direct.h>

有关兼容性的详细信息,请参阅 兼容性

示例

// 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:

另请参阅

目录控制