nullにポインタを渡すとクラッシュが発生しますdlclose。
呼び出す前にnullをチェックする必要がありますdlcloseか?
POSIXはこれについて何も伝えていません:http: //pubs.opengroup.org/onlinepubs/7908799/xsh/dlclose.html
それは未定義の動作ですか、dlcloseそれとも実装のバグですか?
nullにポインタを渡すとクラッシュが発生しますdlclose。
呼び出す前にnullをチェックする必要がありますdlcloseか?
POSIXはこれについて何も伝えていません:http: //pubs.opengroup.org/onlinepubs/7908799/xsh/dlclose.html
それは未定義の動作ですか、dlcloseそれとも実装のバグですか?
これはトリッキーです。POSIX は次のように述べています。
handle開いているオブジェクトを参照していない場合はdlclose()、ゼロ以外の値を返します
そこから、任意のポインターについて、そのポインターが開いているオブジェクトを参照しているかどうかを検出する必要があると推測できます。Linux/Glibc バージョンではそのようなチェックは行わないようですNULL。
[さておき、Linux のマンページもあまり役に立ちません。関数の動作については非常に暗黙的libdlであり、適合性を明確に主張することなく POSIX に準拠しています。]
また、 a を受け入れてクラッシュしNULLないことについても何も述べていません。テストから、明示的なNULLチェックを行わず、何らかの方法でポインターを使用して終了アクションを実行する必要があると推測できます。
malloc/慣例 (1) に従うfreeと、バグです。fopen/fclose規則 (2)に従っている場合、そうではありません。したがって、バグがある場合は、ゾンビを処理するための規則がないため、標準に含まれています。
これは、混乱を避けるために、今後の POSIX リビジョンで修正する必要があると思います。
この回答から見つけましたhttps://stackoverflow.com/a/6277781/877329、そして無効なtidでman pthread_join呼び出すことができることを読んで、慣例をサポートしています。ダイナミック ローダー インターフェイスに関して私が見つけたもう 1 つの問題は、標準のエラー処理システムを使用せず、独自の機能を持っていることです。pthread_joinmalloc/freedlerror