【问题标题】:How is a program in a specific location?特定位置的程序如何?
【发布时间】:2014-01-12 04:58:08
【问题描述】:

在编写程序时,程序运行在一个特定的目录中,即当前工作目录。

我正在尝试更多地了解 cwd 的概念。程序如何知道它的 cwd 是什么?这些信息存储在哪里?

我非常清楚如何在 python 中使用os 模块,但我不太明白拥有 cwd 意味着什么。难道仅仅是一个数据属性,“这就是我们所在的地方”,我们可以任意改变吗?我们只是在 HD 的特定部分寻找东西并创造东西?或者当我们改变 cwd 时,某种路径实际上是在主动打开和关闭,比如一扇门关上,另一扇门被打开?

当我在程序中更改 cwd 时,计算机上会发生什么

这可能与语言无关,我不确定。

【问题讨论】:

标签: operating-system working-directory


【解决方案1】:

当前工作目录(至少在大多数操作系统上)是进程的一个属性,所以是的,它或多或少是一个简单的属性,说明“这就是我们所在的位置”。由于它是进程的属性,它由操作系统内核存储和管理。

它可以通过调用例如任意更改。 os.chdir 在 python 中,shell 在每次运行内置 cd 命令时都会更改其工作目录。而且它们通常都会调用操作系统的相同 API,例如chdir()。更改 cwd 取决于文件系统权限,因此您只能将工作目录更改为实际存在且您有权访问的路径。

cwd也可能涉及文件操作,当进程打开一个不是绝对路径的文件路径时,文件名会相对于进程的cwd进行解析。

在 unix 系统上,cwd 是从父进程继承的,因此从 shell 启动的进程的 cwd 会将其 cwd 指向您启动进程时所在的目录(而不是例如可执行文件)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 2011-02-25
    相关资源
    最近更新 更多