sema_trywait() は、正常終了時に 0 を返します。次のいずれかの条件が検出された場合、sema_trywait() は失敗し、対応する値を返します。
EINVAL
sp が無効なセマフォーを参照しています。
EBUSY
sp が指すセマフォーのカウントが 0 です。