我正在使用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
答案 0 :(得分:4)
请改用getcwd()
。 <{1}}不需要设置。
PWD
答案 1 :(得分:2)
_PC_PATH_MAX
不是最大路径长度。这是您传递给pathconf
以请求最大路径长度的密钥,如pathconf("/", _PC_PATH_MAX)
中所示。当然,如果定义了PATH_MAX
,那么直接使用它会更简单。