Какова цель использования потока памяти в стандартной библиотеке C?
В стандартной библиотеке C, какова цель использования потока памяти (как создается для массива через fmemopen()
)? Как это по сравнению с манипулированием массивом напрямую?
Благодарю.
1 ответ
Это очень похоже на использование
std::stringstream
в C++, который позволяет вам писать в строку (включая
'\0'
символов), а затем используйте нужную строку.
Идея состоит в том, что в нашем распоряжении есть множество функций, таких как , которые можно использовать для записи данных в поток в отформатированном виде. Все эти функции можно использовать с файлом в памяти без каких-либо дополнительных изменений где-либо еще, кроме
fopen()
к
fmemopen()
.
Итак, если вы хотите создать строку, которая требует много
fprintf()
, использование этой функции для генерации строки в памяти чрезвычайно полезно.
snprintf()
также может быть использован, если вам просто нужно одно быстрое преобразование.
Точно так же вы, конечно, можете использовать
fread()
а также
fwrite()
и тому подобное. Если вам нужно создать файл, который требует много поиска, и он не настолько велик, чтобы легко поместиться в памяти, тогда он будет работать намного быстрее. После этого вы можете сохранить результаты на диск.