小编kep*_*pla的帖子

在空环境中,如何找到可执行文件?

出于实验目的,我创建了一个打印$PATH, 并调用which如下的二进制文件:

#include <stdlib.h>
#include <stdio.h>

int main() {
    char *path = getenv("PATH");

    if (path)
        printf("got a path: %s\n", path);
    else
        printf("got no path\n");

    system("which which");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我通过以下方式在空环境中运行它时

env -i ./printpath
Run Code Online (Sandbox Code Playgroud)

我得到以下打印输出:

got no path
/usr/bin/which
Run Code Online (Sandbox Code Playgroud)

我的问题是:即使没有,为什么要which调用正确的二进制文件$PATH

shell binary

7
推荐指数
1
解决办法
1222
查看次数

标签 统计

binary ×1

shell ×1