APR(Apache Portable Runtime)钩子有效吗?

时间:2017-07-27 03:13:04

标签: hook apr apache-portable-runtime

我想通过使用 APR hook 来实现 function_A ,但我想知道它是否有效。 有没有人使用APR钩子或知道工作原理?如果显示任何细节图或数据将是好的。

非常感谢!

1 个答案:

答案 0 :(得分:0)

APR钩子非常有效,钩子的调用是一个宏,它扩展为循环遍历一组函数指针并调用它们。

#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ns,link,ret,name,args_decl,args_use,decline) \
APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
link##_DECLARE(ret) ns##_run_##name args_decl \
    { \
    ns##_LINK_##name##_t *pHook; \
    int n; \
    ret rv; \
\
    if(!_hooks.link_##name) \
        return decline; \
\
    pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
    for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
        { \
        rv=pHook[n].pFunc args_use; \
\
        if(rv != decline) \
            return rv; \
        } \
    return decline; \
    }

因此,从绩效角度来看,没有理由避免这些问题。