How are types like pthread_mutex_t implemented in C?
I want to bring some of those properties to types created by me, if possible.
More specifically I want to know more about these:
How is it possible the code doesn't compile if I try to manually assign any value to a pthread_mutex_t object?
If it is implemented as a struct, why can't I access any field?
The most important one, how is it possible that I can safely call pthread_mutex_destroy on an uninitialized object, and the call will simply return error without risking breaking anything? If I...