Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

переменная errno в многопоточной программе

#c #posix


здравствуйте, допустим, в нескольких программных нитях(потоках) вызываем функцию
read... и она завершается в одном из нитей, допустим, с errno = EAGAIN, в другой с
errno = EBADF... потокобезопасна ли переменная errno, или в каждой нити она своя? 
    


Ответы

Ответ 1



Короткий ответ -- да, errno потокобезопасна. Это требование Posix. (смотри этот ответ)

Ответ 2



Смотрим man errno: errno is thread-local; setting it in one thread does not affect its value in any other thread.

Комментариев нет:

Отправить комментарий