在讨论将 OpenCOBOL 用于 FastCGI 时,我发布了替换
#include <stdio.h>
和
#include <fcgi_stdio.h>
对于绝大多数不想调用的程序,应该不会表现出行为变化
FCGI_Accept()
我撒谎了吗?有需要考虑的问题吗?我承认还没有查看来源,只有网站上的文档。
编辑:2013-03-08 我做了一些实验,该陈述被证明是积极的,但缺乏足够的证据来宣传该陈述是真实的。我仍然很感激任何内幕消息。
正如fcgi_stdio.h
将许多 stdio 符号重新定义为其自己的 FCGI_* 符号集一样,肯定会有一些差异。不过, Fastcgi 也提供了这种可能性#define NO_FCGI_DEFINES
,它允许您同时使用这两个集合——尽管您必须明确指定 FCGI_ 前缀。
我只是在考虑添加一种方法来确定在运行时使用哪个集合,以便能够在线和从 cli 使用相同的二进制文件,但进一步考虑它我宁愿使用两个make
目标。
此外,使用 libfcgi-dev v2.4.0 进行编译时,我似乎遇到了与-ldl
/一起出现的空白输出,dlopen()
尽管两个二进制文件都链接到同一个 libfcgi.so.0 ...
--
tl;dr 如果您想使用dlopen()
并查看 stdout/stderr 上的输出,请不要#include <fcgi_stdio.h>
(不定义NO_FCGI_DEFINES
)