c - 为什么 PWD 为空以及如何修复它?

标签 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

最佳答案

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

#include <unistd.h>

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

关于c - 为什么 PWD 为空以及如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287531/

相关文章:

c - 结构成员中的 void 指针和函数指针

php - PHP退出FastCGI的最佳实践

python - fastcgi、cherrypy 和 python

perl - 如何在CGI中编码base64 md5?

lighttpd 作为反向代理

apache - php-cgi和php-fpm有什么关系?

c - 将 int 类型转换为 char *

c - C 等价于什么?

c - C 编程中的错误 : stat: No Such File Or Directory, opendir() 和 stat()

Python独立HTTP服务器支持脚本运行?