出于实验目的,我创建了一个打印$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
?