获取FastCGI中的所有客户端头文件(C/C++)

The*_*ppo 6 c c++ fastcgi http

目前我遇到了一个小问题:
我想为nekoVM创建FastCGI/CGI绑定.这是通过编写VM加载的一些线索C/C++代码来完成的.我想使我的绑定行为尽可能与neko native API(mod_neko,mod_tora)兼容.使用mod_neko,可以获取客户端发送的所有HTTP头.
据我所知,只有通过调用才能获得FastCGI的HTTP头getenv('header_name').要使用此功能,您需要知道所有标题的名称.

我的问题:是否有可能获得客户端发送的所有标头?

Wya*_*son 3

您可以在大多数系统上使用外部定义的、以 null 结尾的environ变量来获取所有环境变量的数组,您可以迭代该数组以获取所需的标头(假设 FastCGI 以合理的方式设置环境变量):

#include <stdio.h>

int main(int argc, char *argv[])
{
    extern char **environ;
    for (int i = 0; environ[i] != NULL; i++)
    {
        printf("%s\n", environ[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅man 7 环境