【问题标题】:Where does the Linux kernel look for executablesLinux内核在哪里寻找可执行文件
【发布时间】:2012-06-12 22:24:48
【问题描述】:

首先是一些背景。我最近安装了一些软件(实际上是 TeX live),并且二进制文件由安装程序放置在非标准位置(/usr/local/texlive/2011/bin/x86_64-linux)。没问题,因为我可以更改 $PATH 以包含此目录。但是,我在 Makefiles 中使用了乳胶,Make 说它找不到“乳胶”。我最终意识到 Make 要求内核以独立于 shell 的方式运行乳胶。因此,我将所有 Latex 可执行文件移动到 /usr/local/bin 并且一切正常,大概是因为内核现在可以看到可执行文件了。

如果这是正确的,我的问题是:当要求运行独立于 shell 的程序时,内核在哪里寻找可执行文件?

【问题讨论】:

    标签: path kernel


    【解决方案1】:

    内核不寻找可执行文件——它总是被告知(绝对或相对)路径。所有的程序执行(我相信)基本上都归结为调用execve()函数,需要告诉它可执行文件的路径。

    当您仅使用名称调用程序时,取决于解释您的命令(shell、make)的任何内容来定位程序。或者,可以使用诸如execlp() 之类的库函数,它们自己进行路径解析(参见“特殊语义”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 2015-05-05
      • 2019-02-24
      相关资源
      最近更新 更多