Какова цель использования потока памяти в стандартной библиотеке C?

В стандартной библиотеке C, какова цель использования потока памяти (как создается для массива через fmemopen())? Как это по сравнению с манипулированием массивом напрямую?

Благодарю.

1 ответ

Это очень похоже на использование std::stringstreamв C++, который позволяет вам писать в строку (включая '\0'символов), а затем используйте нужную строку.

Идея состоит в том, что в нашем распоряжении есть множество функций, таких как , которые можно использовать для записи данных в поток в отформатированном виде. Все эти функции можно использовать с файлом в памяти без каких-либо дополнительных изменений где-либо еще, кроме fopen()к fmemopen().

Итак, если вы хотите создать строку, которая требует много fprintf(), использование этой функции для генерации строки в памяти чрезвычайно полезно. snprintf()также может быть использован, если вам просто нужно одно быстрое преобразование.

Точно так же вы, конечно, можете использовать fread()а также fwrite()и тому подобное. Если вам нужно создать файл, который требует много поиска, и он не настолько велик, чтобы легко поместиться в памяти, тогда он будет работать намного быстрее. После этого вы можете сохранить результаты на диск.

Другие вопросы по тегам