我怎样才能得到系统盘符?

如何在Windows操作系统上find主硬盘的驱动器号?

也就是,带有Program FilesSystem32的驱动器。

有一个名为SystemDrive的环境变量被设置为系统驱动器(足够令人惊讶)。 getenv()调用是你如何去做到的。

 char *sysDrive = getenv ("SystemDrive"); if (sysDrive == NULL) { // vote me down. } else { // vote me up and use it. } 

如果您不能依赖系统驱动器上存在的特定目录,则此页面会列出所有可用的环境变量。

或者,使用Windows API调用SHGetSpecialFolderPath() ,并传入正确的CSIDL 。 那么你不应该依赖于环境变量。

尽管在那些已经被Vista中的其他函数取代的页面上注意到了(它应该仍然可以工作,因为这个函数成为了新函数的一个包装)。

API调用GetWindowsDirectory可能会有所帮助。 您可以使用API​​进一步解析此信息以分析驱动器号信息。

SYSTEMDRIVE

PROGRAMFILES

SYSTEMROOT

WINDIR

不要假设程序文件与Windows在同一个驱动器上。 通常是这样。 通常。

切勿像上面的错误答案那样使用env变量。
env变量可由用户更新。