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

pwdですので、こちらまたはドキュメントshell builtin commandを参照してください。だからあなたが書くならman bash

$ pwd

次に、組み込みコマンドが起動されます。パスを指定すると、ELF バイナリが実行され、LD_PRELOAD が使用されます。

于 2012-04-25T09:27:40.657 に答える