Я только что узнал о существовании функции ios_base::sync_with_stdio, которая в основном позволяет отключить (или включить, если вы уже отключили ее) синхронизацию между потоками iostream, которые используются в С++ и cstdio потоки, которые являются частью стандарта C.
Теперь я всегда думал, что stdout, stderr и stdin в C были по существу завернуты в набор объектов в С++ в классах iostreams. Но если они должны быть синхронизированы друг с другом, это будет означать, что классы С++ iostream не являются оберткой вокруг C stdin и т.д.
Я очень смущен этим? Может кто-то уточнить, как С++ iostream и C stdio - разные вещи, которые делают точно то же самое, только на другом уровне абстракции? Я думал, что они то же самое!?
Как они должны быть синхронизированы? Я всегда думал, что это одно и то же, а другое - по существу.