Существует переменная окружения с именем SystemDrive
, которая установлена на системный диск (что удивительно). Вызов getenv()
- это то, как вы можете добраться до него.
char *sysDrive = getenv ("SystemDrive");
if (sysDrive == NULL) {
// vote me down.
} else {
// vote me up and use it.
}
На этой странице перечислены все доступные переменные среды, если вы не можете полагаться на конкретные каталоги, существующие на системном диске.
В качестве альтернативы используйте вызов Windows API SHGetSpecialFolderPath () и передайте правильный CSIDL . Тогда вам не нужно полагаться на переменные окружения.
Хотя обратите внимание на те страницы, что это было заменено другими функциями в Vista (все равно должно работать, так как эта функция становится оболочкой для новой).