0

我正在使用 apache server 2.4 部署一个 Web 应用程序,为此我创建了两个带有请求处理程序Handler1Handler2的自定义 C 模块。这些已在 httpd.conf 文件中正确添加和配置,用于处理与我的应用程序相关的特定请求。

问题是我在加载到 apache 服务器的自定义模块 .so 文件中都有一个具有相同名称和签名的函数void foo(char*, char*) ,没有任何问题。但是有一种情况,当 Handler2 正在处理一个请求并且我调用foo()时,来自 Handler1 的函数被调用。在Handler1::foo()完成后,控制再次返回到 Handler2。

关于这种行为背后的原因有什么想法吗?

4

1 回答 1

1

不需要导出 foo() 函数,您可以将其声明为静态,或者您需要正确管理符号可见性。参见示例(这是针对 AIX,但概念完全相同):

http://www.ibm.com/developerworks/aix/library/au-aix-symbol-visibility/

于 2013-08-29T13:27:06.550 回答