【问题标题】:Is a process's current directory equals to its working directory?进程的当前目录是否等于其工作目录?
【发布时间】:2012-02-12 04:14:21
【问题描述】:

当前目录是否与工作目录相同?

当我在PATH搜索文件夹下启动一个程序时,第一个文件夹会成为它的当前目录吗?

【问题讨论】:

    标签: .net windows


    【解决方案1】:

    有点。

    有一个工作目录,是一个完整的路径(包括盘符)。

    但是每个驱动器都有一个“当前目录”,它会影响驱动器相对路径(格式为D:name,驱动器规范后面没有反斜杠)。 IIRC,这些存储在环境变量表中。

    链接是当工作目录改变时,shell 会自动更新当前目录。但其他程序不一定会这样做。

    PATH 搜索对当前目录或工作目录没有影响。它们是从父进程继承的,除非在启动新进程时明确指定。

    另见this related question

    【讨论】:

      【解决方案2】:

      “当前目录”是活动进程的属性。

      AFAIK、“当前目录”、“当前工作目录”和“工作目录”都是完全相同事物的同义词。它们肯定在 Linux、Java(可以说是 .Net)领域。然而,在 Windows 中,一个进程可以为每个驱动器拥有不同的“工作目录”:

      程序的“初始目录”通常是以下之一:

      • 启动它的目录(从命令行),

      • .exe 所在的目录(如果您从 Windows 资源管理器中双击它),或者

      • 桌面链接指定的目录(如果双击 Windows 快捷方式)

      也就是说,“初始目录”和“exe所在目录”可能相同,也可能不同。

      • 正在运行的进程的“初始目录”与“路径”没有直接关系。

      路径有助于操作系统找到 .exe(以便加载和运行它),但它用于分配“初始目录”。 p>

      '希望有帮助

      【讨论】:

        【解决方案3】:

        “当前目录与原始目录不同,原始目录是启动进程的目录。”...正如here所指出的那样

        顺便说一句,关于你的问题标题,没有当前或工作目录,有一个叫做“当前工作目录”的东西(再次,来自上面的链接)。

        在您的应用程序中,您无法确定应用程序启动时当前工作目录的位置,但如果您愿意,可以set it

        (我的链接与 .net 相关,这可能不是您选择的技术)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-12
          • 2016-03-22
          • 1970-01-01
          • 2015-01-17
          • 1970-01-01
          相关资源
          最近更新 更多