为tcsh发出的文件预加载open()

时间:2018-06-08 09:40:29

标签: linux csh tcsh ld-preload

我在动态库中覆盖文件打开系统调用(open,open64,fopen,fopen64,freopen,freopen64),并将LD_PRELOAD设置为指向该库。

这是我正在测试的示例脚本 -

#!/bin/tcsh
source testcsh1.csh
source testbash1.sh

在RHEL 5.7(tcsh 6.14.00)上,拦截了调用testcsh1.csh和testbash1.sh的open()。但是,拦截(在动态库中调用覆盖函数)不会发生以下情况 -

  1. RHEL 6.6(tcsh 6.17.00)
  2. RHEL 7.1(tcsh 6.18.01)
  3. SLES 11 SP1(tcsh 6.15.00)
  4. CentOS 6.6(tcsh 6.17.00)
  5. 使用gdb和strace可以看到未截取的open()。

    请告知可能的原因或后续步骤进行调试。谢谢!

0 个答案:

没有答案