您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

LD_PRELOAD是否可以使用具有不同参数的函数?

LD_PRELOAD是否可以使用具有不同参数的函数?

尽管可以安排提供修改后的pthread_mutex_lock()功能,但是代码将被编译为调用标准功能。当使用传递到标准函数的参数调用替换时,将导致问题。这是一种礼貌的说法:

任何预加载函数都必须实现与其替换的函数相同的接口,即相同的名称,相同的参数,相同的值。可以根据需要以不同的方式实现内部实现,但是接口必须相同。

与结构类似。现有代码经过编译,期望结构具有一种尺寸,并具有一种特定的布局。您可能不希望在最后添加一个额外的字段,但是未替换的代码可能无法正常工作。它将为结构的原始大小而不是增强结构等分配空间。它将永远不会访问额外的元素本身。可能不是很不可能,但是您必须设计该程序来处理动态变化的结构大小,这对何时可以执行设置了足够严格的限制,答案“不可能”可能是适当的(而且肯定很多)更简单)。

IMNSHO,LD_PRELOAD机制用于紧急情况(是给定问题的临时创可贴)。这不是您应该计划在定期类似于远程的任何事物上使用的机制。

其他 2022/1/1 18:14:13 有537人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶