Курсоры чтения и записи в 'std::fstream' всегда имеют одинаковую позицию C++
Вопрос такой: курсоры в std::fstream всегда имеют одинаковую позицию (как для чтения, так и для записи).
Например, в std::stringstream такого нет:
Курсор для чтения имеет свою позицию, как и курсор для записи.
Я пробовал почитать об этом, но так и не совсем понял из-за чего было принято такое решение. Нашел только информацию о том, что это связано с
low-level I/O, ОС и тем, что нельзя писать и читать сразу в двух разных местах - но так и не понял почему конкретно.Есть те, кто также задавался таким вопросом и/или знает ответ? Надеюсь, что здесь я его получу.
Хочу предупредить:
std::stringstreamя привел чисто в пример, как мое ожидание по работе с позициями курсоров вstd::fstream- ничего большего!
Ответы (1 шт):
В общем я нашел ответ - расскажу для тех, кому интересно: все дело в том, что на уровне ОС - может существовать лишь один курсор для чтения и записи. Поэтому курсоры в std::fstream связаны, и не могут иметь разные позиции.