Являются ли fprintf и fscanf реентерабельными при использовании разных файловых дескрипторов

Могу ли я иметь 2 потока в одном процессе, вызывающем fprintf или fscanf одновременно?

Один поток записывается первым потоком и читается вторым потоком, а другой поток читается первым потоком и записывается вторым потоком. Итак, у меня нет ситуации одновременной записи или одновременного чтения в один и тот же поток.

Если ответ отрицательный, есть ли у меня реентерабельная альтернатива в семействе printf/scanf?

Этот вопрос следует за некоторыми комментариями в: Общение потоков через printf и scanf (linux)


person user302099    schedule 29.06.2011    source источник
comment
Возможен тупик. Оба потока читают, ожидая записи другого потока.   -  person Hans Passant    schedule 30.06.2011
comment
потокобезопасный != реентерабельный   -  person Jiangge Zhang    schedule 13.03.2018


Ответы (1)


Они потокобезопасны. См. http://www.unix.org/whitepapers/reentrant.html.

person Igor Nazarenko    schedule 30.06.2011