sem_init() conforms to ISO/IEC 9945-1:1996 (“POSIX.1”).
This implementation does not support shared semaphores, and reports this fact by setting
errno to
EPERM. This is perhaps a stretch of the intention of POSIX, but is compliant, with the caveat that
sem_init() always reports a permissions error when an attempt to create a shared semaphore is made.