アンロードおよびterminateAndUnloadサブルーチン

目的

モジュールをアンロードします。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <sys/ldr.h>

int unload( FunctionPointer)
int (*FunctionPointer)( );

int terminateAndUnload( FunctionPointer)
int (*FunctionPointer)( );

説明

unload および terminateAndUnload サブルーチンは、指定されたモジュールとその従属モジュールをアンロードします。 load サブルーチンによって戻される値は、 FunctionPointerとして unload サブルーチンに渡されます。 アンロード サブルーチンは、他のモジュールによって使用されていない、指定されたモジュールおよびその従属モジュールの終了ルーチン (fini ルーチン) を呼び出します。

unload および terminateAndUnload サブルーチンは、モジュールが使用されなくなった場合にのみ、指定されたモジュールが使用するストレージを解放します。 使用中の他のモジュールがそのモジュールからシンボルをインポートしている限り、そのモジュールは使用中です。

アンロード サブルーチンは、C++ 終了、つまりデストラクターの呼び出しを実行しません。 代わりにterminateAndUnloadサブルーチンを使用する。 dlcloseサブルーチンは、terminateAndUnloadサブルーチンと同様にC++の終了を実行する。

モジュールがアンロードされると、そのモジュールにバインドされていた据え置き解決記号はバインドされたままになります。 これらのバインディングは、 アンロード サブルーチンを使用しても元に戻すことができないモジュールへの参照を作成します。

ptrace 制御下で実行されているプロセスが アンロードを呼び出すと、デバッガーは、 待機によって返される状況に SLWTED (_S) フラグを設定することによって通知されます。 共用ライブラリーにロードされたモジュールがプロセスによって使用されなくなった場合、そのモジュールは、そのモジュールを含むページを解放することによって、共用ライブラリー・セグメントのプロセスのコピーから削除されます。

パラメーター

項目 説明
FunctionPointer 戻される関数の名前を指定します。

戻り値

正常終了すると、 unload および terminateAndUnload サブルーチンは、以下の値を戻します。0モジュールがまだ使用中であるためにアンロードできなかった場合でも同様です。

エラー・コード

unloadと'terminateAndUnloadサブルーチンが失敗した場合、-1が返され、プログラムはアンロードされず、エラーを示すerrnoが設定される。 エラー番号 は、以下のいずれかに設定できます。

項目 説明
EINVAL FunctionPointer パラメーターは、 load サブルーチンによってロードされるプログラムには対応しません。