`dlopen()`は動的リンカ`ld-linux.so`を呼び出して動的リンクを実行しますか?

`dlopen()`は動的リンカ`ld-linux.so`を呼び出して動的リンクを実行しますか?

CSAPPと呼ばれる

Linuxシステムはシンプルなインターフェースを提供します。動的リンカーアプリケーションが実行時に共有ライブラリをロードしてリンクできるようにします。

#include <dlfcn.h>
void *dlopen(const char *filename, int flag);

戻り値:成功した場合はハンドルポインタ、エラーがある場合はNULL

dlopen()動的リンカーを呼び出して動的接続を実行しますかld-linux.so

ld-linux.so動的接続を実行する動的リンカーを呼び出していますか?dlopen()

ありがとうございます。

ベストアンサー1

dlopenで提供されますlibdlが、その背後には、少なくとも提供されたシンボルを使用してld-linux.so動的リンクを実行するGNU Cライブラリを使用して実装されています。dlopen動的リンカーから呼び出された場合はすでにld-linux.soロードされているため、シンボルを直接使用し、静的リンカーから呼び出すとロードを試みますld-linux.so

おすすめ記事