With reference to the semaphore implementation of semaphore.h in Linux, does an uninitialized semaphore sem_t default to 0?
I just discovered that I had forgotten to initialize my semaphores to 0. Even so, the program worked fine without sem_init.
(To all the purists, I completely agree that doing so is a bad practice.)