テストとしてランダムな文字列をファイルに書き込むように設定することにより、プロジェクトの Linux での DNS ルックアップ関数の動作を変更しようとしています。
Linux は、主にgethostbynameなど、いくつかの DNS リゾルバー関数を使用します。楽しみにしていると、リゾルバー関数がglibc6ライブラリ内にあることがわかりました。そのため、ダウンロードしてコンパイルし、libresolv.so、libnss_dns.so動的ライブラリを生成しました。次に、システムの/usr/lib/x86_64-linux-gnu/にある既存のものを置き換えました。
注: これらのライブラリは、 gethostbynameコードを変更して再度コンパイルすることでクエリを解決するライブラリであることがわかりました。次に、どの動的ライブラリが変更されたかを確認しました。
res_queryを直接使用するプログラム(リゾルバー関数) を作成し、-lresolvでコンパイルすることで動作します ( lddコマンドを使用し、作成したリゾルバー ライブラリを使用します)。しかし、コードから直接gethostbynameを使用したり、 wgetを使用したり、Web をブラウジングしたりすると、うまくいきません。
私は何を間違っていますか?