0

pthread_*および他の多くの機能のドキュメントを見るとpthread_rwlock_destroy、次のようにドキュメントが表現されています。

戻り値

成功した場合、pthread_rwlock_destroy()およびpthread_rwlock_init()関数はゼロを返します。それ以外の場合は、エラーを示すためにエラー番号が返されます。

[EBUSY]および[EINVAL]エラーチェックが実装されている場合、関数の処理の開始直後に実行されたかのように動作し、rwlockで指定された読み取り/書き込みロックの状態を変更する前にエラーが返されます。

これは、エラーが発生した場合、エラー番号が返されることを意味します。次に、エラーコードについて説明します。

エラー

次の場合、pthread_rwlock_destroy()関数が失敗する可能性があります。

[EBUSY]
実装は、ロック中にrwlockによって参照されるオブジェクトを破棄する試みを検出しました。
..。

EBUSYそれ自体が返されるかどうかについては言及されていません-EBUSY。関数がエラーコードを返すとき、私が見るほとんどすべての場所で、関数はを返し-E*****ます。

pthread_*これは、関数もこの規則に従うことを意味しますか?-EBUSY戻り値をそれ自体に対してチェックする必要がありEBUSYますか?

同じテーマで、彼らはまたはに保存EBUSYしますerrno-EBUSY

4

1 に答える 1

4

それらは正のエラーコードを返します。アプリケーションに表示されるものは、否定されたエラーコードを返しません。これがカーネルの実装の詳細です。

于 2013-03-19T18:09:10.790 に答える