3
私は、POSIX準拠の2つのオペレーティングシステム、つまりQNXとLinuxの間で共有されるPOSIX互換のコードを書こうとしています。POSIX関数の戻り値
私は、関数の戻り値の指定に小さな違いがあることを見出しました。 pthread_mutex_trylock()
。あるドキュメントはEOK
(それは0
と評価されます)を返します。もう1つは、成功した場合には平文0
を返します。
戻り値== 0
または!= 0
を安全に確認し、QNX EOK
マクロを使用しないでください。
私の質問:
- POSIXは、明示的に成功および/またはエラーの場合には関数によって返さされなければならない値を定義していますか?
- 厳密に言えば、
EOK
(0
ではない)を返すように指定された関数です。POSIXに準拠していますか? EOK
は標準の一部ですか?
この質問は純粋な学問です。まず第一に、Posixはバイナリ互換性に関するものではなく、ソースコードとの互換性に関するものです。 'EOK'はposixで指定されておらず、上記の関数は成功すると' 0'を返さなければならないので、ここで定数0を使うのは安全です。私は 'EOK'を含む標準を知らない。 – Ctx
@Ctx:ソースの互換性が問題です。 EOKはその互換性を(不必要に)破るようです。あなたのコメントが私の質問に答えたので、とにかくそれを実際の答えにしてみませんか? – Silicomancer