В чем магия sync_with_stdio(false)C++

Программы на C++. Форум разработчиков
Anonymous
В чем магия sync_with_stdio(false)

Сообщение Anonymous »

Из следующего сообщения:
Использование scanf() в программах на C++ быстрее, чем использование cin?
Я знаю, что после установки sync_with_stdio( false), cin может читать быстрее. Мой вопрос: почему?
Раньше я думал, что после вызова sync_with_stdio(false) система может создать буфер, чтобы уменьшить время связи со стандартным вводом: когда приходит запрос на чтение, система может прочитайте несколько символов в буфер перед выполнением синтаксического анализа. Однако я понял, что это не так, поскольку cin будет блокировать и ждать, пока клиент введет символы один за другим. Это означает, что независимо от того, вызывается sync_with_stdio(false) или нет, система должна ждать ввода пользователя.
Тогда я подумал, что после вызова sync_with_stdio(false) стандартный ввод может переход от заблокированного чтения к разблокированному чтению. Однако я попытался написать следующий код:

Код: Выделить всё

#include 

int main()
{
auto saved_flags = fcntl(STDIN_FILENO, F_GETFL);
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78718836/what-is-the-magic-behind-sync-with-stdiofalse[/url]

Вернуться в «C++»