Поясните пожалуйста смысл существования набора функций типа pthread_key_create, pthread_key_delete, pthread_setspecific, pthread_getspecific? Чем не устраивают локальные автоматические переменные в главной функции потока и как с помощью этого скрытно решается проблема глобальной переменной errno?