sem_trywait() returns zero after completing successfully. Any other return value indicates that an error occurred. When any of the following conditions occurs, the function fails and returns the corresponding value.
EINVAL
Description:sem points to an illegal address.
EINTR
Description:A signal interrupted this function.
EAGAIN
Description:The semaphore was already locked, so the semaphore cannot be immediately locked by the sem_trywait() operation.