Безопасно ли использовать файловый дескриптор и связанный с ним поток FILE* одновременно?
Я пишу библиотеку сокетов C++ для управления сложностями управления системными вызовами, связанными с сокетами. Мне любопытно, есть ли какие-либо вредные побочные эффекты при создании FILE*
с fdopen(3)
и использовать его вместе с оригинальным файловым дескриптором клиента.
Я хотел бы иметь возможность сделать это, потому что это обеспечивает большую гибкость в возможности использовать такие вещи, как select(2)
при использовании getline(3)
(основная цель этого вопроса), однако я боюсь, что FILE*
вызовет некоторые проблемы с утилитами, основанными на дескрипторе файла (а именно, внутренняя буферизация FILE*
возиться с select(2)
способность определить, есть ли данные для read(2)
).