为什么PWD是空的以及如何修复它?

时间:2011-09-02 18:07:12

标签: c cgi lighttpd

我正在使用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

2 个答案:

答案 0 :(得分:4)

请改用getcwd()。 <{1}}不需要设置。

PWD

答案 1 :(得分:2)

_PC_PATH_MAX不是最大路径长度。这是您传递给pathconf以请求最大路径长度的密钥,如pathconf("/", _PC_PATH_MAX)中所示。当然,如果定义了PATH_MAX,那么直接使用它会更简单。