_getdrives
現在使用できるディスク ドライブを表すビットマスクを返します。
重要
この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。
構文
unsigned long _getdrives( void );
戻り値
関数が成功した場合、戻り値は、現在使用できるディスク ドライブを表すビットマスクです。 ビット位置 0 (下位ビット) はドライブ A を表します。同様に、ビット位置 1 はドライブ B、ビット位置 2 はドライブ C などを表します。 関数が失敗した場合は、0 を返します。 拡張されたエラー情報を取得するには、GetLastError
を呼び出します。
解説
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_getdrives |
<direct.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// 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: