2011-09-02 195 views
0

我使用的lighttpd,并写了下面的CGI脚本:为什么PWD是空的以及如何解决它?

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,但也许我应该切换到不同的东西。

UPDATE

不工作藏汉是

char cwd[_PC_PATH_MAX+1]; 
getcwd(cwd, _PC_PATH_MAX+1); 

CWD是 “”。如果我使用1408房间作为我的数据中心,也许我的脚本知道它在哪里。 :P

回答

4

改为使用getcwd()PWD不需要设置。

#include <unistd.h> 

char *getcwd(char *buf, size_t size); 
2

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

+0

哦,我的...我知道为什么脚本语言如此受欢迎。就是这样。 – Fritz

相关问题