我正在使用 lighttpd 并编写了以下 cgi 脚本:
main(){
printf("Content-type: text/html\n\n");
char * pwd ="";
pwd=getenv("PWD");
printf ("The current path is: %s",pwd);
}
结果是
The current path is: (null)
嗯,我不明白为什么。而且我不知道如何找到执行脚本的路径。我正在寻找带有路径的 args[0],并为此使用了 pwd,但也许我应该切换到不同的东西。
更新
同样不工作的是
char cwd[_PC_PATH_MAX+1];
getcwd(cwd, _PC_PATH_MAX+1);
cwd 是“”。如果我停止使用 1408 房间作为我的数据中心,也许我的脚本知道它在哪里。 :P
最佳答案
改用 getcwd()
。 PWD
不需要设置。
#include <unistd.h>
char *getcwd(char *buf, size_t size);
关于c - 为什么 PWD 为空以及如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287531/