Let's start with the boolean thread attributes.
(default) pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_JOINABLE);
To create one that can't be joined (called a detached thread), you'd use this:
pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
(default) pthread_attr_setinheritsched (&attr, PTHREAD_INHERIT_SCHED);
To create one that uses the scheduling attributes specified in the attribute structure itself (which you'd set using pthread_attr_setschedparam() and pthread_attr_setschedpolicy()), you'd use this:
pthread_attr_setinheritsched (&attr, PTHREAD_EXPLICIT_SCHED);
(default) pthread_attr_setsuspendstate_np (&attr, PTHREAD_NOT_SUSPENDED);
If you want the thread to be suspended when it's created, you'd use this:
pthread_attr_setsuspendstate_np (&attr, PTHREAD_SUSPENDED);
If you do insist on calling it, you can call it only as follows:
(default) pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM);