假设我想完全接管open()系统调用,可能是为了包装实际的syscall并执行一些日志记录。 一种方法是使用LD_PRELOAD 加载一个(用户制作的)共享对象库,以接管open()入口点。
用户制作的open()例程然后通过dlsym()获取指向glibc函数open()的指针,并调用它。
上述提出的解决方案是一种动态解决方案。但是假设我要静态链接自己的open()包装器。我该怎么办?我猜机制是相同的,但我也猜测用户定义的open()和libc open()之间会发生符号冲突。
请分享任何其他实现相同目标的技术。
用户制作的open()例程然后通过dlsym()获取指向glibc函数open()的指针,并调用它。
上述提出的解决方案是一种动态解决方案。但是假设我要静态链接自己的open()包装器。我该怎么办?我猜机制是相同的,但我也猜测用户定义的open()和libc open()之间会发生符号冲突。
请分享任何其他实现相同目标的技术。