非常に多くの場合、私は、たとえば、返されるエラーコードのCコードの否定で見るreturn -EINVAL
代わりにreturn EINVAL
。否定を使用した理由
非常に多くの場合、私は、たとえば、返されるエラーコードのCコードの否定で見るreturn -EINVAL
代わりにreturn EINVAL
。否定を使用した理由
回答:
多くのUNIXenでは、syscallsの規則では、エラーの場合は否定されたエラーコードを返し、成功の場合は実際の値を返します。
これは、ユーザー空間側-1
での正のエラーコードを持つエラーerrno
、または成功した場合の実際の値に変換されます。
このような戻り値の二重の目的は、この種の言語での複数の戻りが面倒なので、最終的なエラーを保持するためにoutパラメーターを渡す必要があるためです。