Linux有一个称为命名空间的功能,它让您为不同的进程提供不同的文件系统“视图”。在Windows术语中,如果你有一个遗留程序"floyd"总是从C:\floyd\floyd.ini
加载配置,这将是有用的。如果Windows也有命名空间,你可以编写一个包装脚本,在其中创建一个命名空间来运行floyd
,这样当Alice运行该脚本时,floyd将在一个环境中启动,其中C:\floyd
存在但实际上指向C:\Users\Alice\Floyd
。
现在你可能会想,“好吧,只需使用软链接或硬链接,并使C:\floyd
成为C:\Users\Alice
的别名即可。”但使用命名空间,Bob还可以运行启动脚本,但他的floyd实例(在同一台计算机上并且同时运行)将看到C:\floyd
的内容,例如C:\Users\Bob\Program Settings\Floyd Config
(或任何其他我们喜欢的路径)。
在Linux上,您可以使用命名空间实现这一点。 Windows上是否有类似或类似的东西?如果需要编写C程序,则可以,如果它仅适用于较新版本的Windows也可以。
\floyd\floyd.ini
这样的路径加载配置文件的程序——这是一个相对于驱动器的路径,只有在当前工作目录位于同一驱动器上时才有效。无法通过命名空间来解决这个问题。 - MSalters