The
sem_open() function will fail if:
[EACCES]
The semaphore exists and the permissions specified by oflag at the time it was created deny access to this process.
[EACCES]
The semaphore does not exist, but permission to create it is denied.
[EEXIST]
O_CREAT and O_EXCL are set but the semaphore already exists.
[EINTR]
The call was interrupted by a signal.
[EINVAL]
The sem_open() operation is not supported for the given name.
[EINVAL]
The value argument is greater than SEM_VALUE_MAX.
[ENAMETOOLONG]
The name argument is too long.
[ENFILE]
The system limit on semaphores has been reached.
[ENOENT]
O_CREAT is not set and the named semaphore does not exist.
[ENOSPC]
There is not enough space to create the semaphore.
The
sem_close() function will fail if:
[EINVAL]
The sem argument is not a valid semaphore.
The
sem_unlink() function will fail if:
[EACCES]
Permission is denied to unlink the semaphore.
[ENAMETOOLONG]
The specified name is too long.
[ENOENT]
The named semaphore does not exist.