Đối với mục đích thử nghiệm, tôi đã tạo một tệp nhị phân in $PATH
và gọi which
như sau:
#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;
}
khi tôi chạy nó trong một môi trường trống rỗng thông qua
env -i ./printpath
Tôi nhận được bản in sau:
got no path
/usr/bin/which
Câu hỏi của tôi là: tại sao which
nhị phân chính xác được gọi, ngay cả khi không có $PATH
?