4

我正在使用 LD_PRELOAD 并生成了一个库,该库仅将 puts() 包装在一个函数中,该函数在打印之前将要打印的字符串转换为大写。然后我像这样导出 LD_PRELOAD 变量

$ export LD_PRELOAD=/home/adrian/test/myputs.so

现在运行命令时行为按预期工作

$ /bin/pwd
/HOME/ADRIAN/TEST

但是这样运行时不起作用

$ pwd
/home/adrian/test

在这种情况下导致 LD_PRELOAD 环境变量被忽略的机制是什么?

4

1 回答 1

4

因为pwdis shell builtin command-seeman bashdocs here。所以如果你写

$ pwd

然后启动内置命令。如果你告诉它路径,它将执行 ELF 二进制文件并使用 LD_PRELOAD。

于 2012-04-25T09:27:40.657 回答