在查看一些实现 FastCGI 客户端的示例时,我遇到了一些奇怪的代码。
#include <fcgi_stdio.h>
#include <stdlib.h>
int main(void) {
while(FCGI_Accept() >= 0)
printf("Content-type: text/html\r\n\r\n"
"Got a <i>%s</i> request\n",
getenv("REQUEST_METHOD"));
return 0;
}
在我看来,进程总是会为 获得相同的值getenv(...)
,但似乎意图是从父进程读取数据。
子进程运行时父进程能否更新子环境?
不。
但是该
FCGI_Accept()
函数每次被调用时都可以更新(C 库的副本)当前进程的环境,这当然是它所做的。的确,不保留调用的结果
getenv()
是在该函数的doco中专门调用的。所以你可以数一数这个页面上有多少人阅读了 doco。(-:延伸阅读
FCGI_Accept
. FCGI手册。Open Market, Inc.. 1996 年。存档于 opensource.apple.com。