按关键词阅读: 操作系统 Windows
大多数人可能会认为 , 系统目录永远都是恒定的 , 即%windir%\\SYSTEM32 。 为什么Windows要设计一个单独的函数GetSystemDirectory呢?是不是有点多此一举了?
非也非也 。 由于历史原因 , 系统目录有时候会变化 。
对于16位的Windows NT操作系统 , 系统目录为%windir%\\SYSTEM 。 对于基于Windows95和所有其他的16位操作系统 , 系统目录也是%windir%\\SYSTEM 。
即使是在16位操作系统的世界 , 如果系统目录始终是%windir%\\SYSTEM , 为什么还是需要一个函数来返回呢?
皇上别急 , 请听老臣解释 。
同上的道理 , 即使是16位的操作系统 , 系统目录也不是一成不变的 。
在16位系统的古老时代 , 你可以直接在网络硬盘上运行Windows 。 所有的系统文件会被保留在网络服务器上 , 只有用户文件才会被保留在本地机器中 。 另外 , 网络上的每一台电脑都使用相同的网络路径作为系统目录的路径 。 那个时候 , 只有一个USER.EXE的拷贝被所有用户共享 。
在这种基于网络的Windows配置下 , 系统目录是共享网络磁盘的一个路径 , 而Windows目录是本机硬盘的一个路径 , 例如C:\\Windows 。 客户没有对网络共享盘的写入权限 , 但是他们对本机Windows目录却有写入权限 。
这就是为什么我们设计了一个单独的GetSystemDirectory函数来返回系统目录 。
总结奇怪的小知识是不是又增加了?
最后Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《Why is there a separate GetSystemDirectory function?》
【Windows|为什么设计一个单独的GetSystemDirectory函数?】
稿源:(未知)
【傻大方】网址:/c/1202b10J2021.html
标题:Windows|为什么设计一个单独的GetSystemDirectory函数?