我正在使用 lighttpd 并编写了以下 cgi 脚本:
main(){
printf("Content-type: text/html\n\n");
char * pwd ="";
pwd=getenv("PWD");
printf ("The current path is: %s",pwd);
}
Run Code Online (Sandbox Code Playgroud)
结果是
The current path is: (null)
Run Code Online (Sandbox Code Playgroud)
嗯,我不明白为什么。而且我不知道如何找到执行脚本的路径。我正在寻找带有路径的 args[0],并为此使用了 pwd,但也许我应该切换到不同的东西。
更新
不工作也是
char cwd[_PC_PATH_MAX+1];
getcwd(cwd, _PC_PATH_MAX+1);
Run Code Online (Sandbox Code Playgroud)
cwd 是“”。如果我停止使用房间 1408 作为我的数据中心,我的脚本可能知道它在哪里。:P
使用getcwd()来代替。PWD不需要设置。
#include <unistd.h>
char *getcwd(char *buf, size_t size);
Run Code Online (Sandbox Code Playgroud)