我正在使用apache服务器2.4来部署Web应用程序,我已经使用请求处理程序创建了两个自定义C模块 Handler1 &的 Handler2 即可。这些已在httpd.conf文件中正确添加和配置,以处理与我的应用程序相关的特定请求。
问题是我在两个自定义模块.so文件中都有一个函数 void foo(char *,char *),它们在没有任何文件的情况下加载到apache服务器中。问题。但是有一种情况是Handler2正在处理请求并且我调用了 foo()来调用Handler1中的函数。在 Handler1 :: foo()完成后,控件再次回到Handler2。
知道这种行为背后的原因是什么?
答案 0 :(得分:1)
不需要导出foo()函数,您可以将其声明为静态,或者您需要正确管理符号可见性。参见例如(这适用于AIX,但概念完全相同):
http://www.ibm.com/developerworks/aix/library/au-aix-symbol-visibility/