поток в байтовый массив - PullRequest
       28

поток в байтовый массив

2 голосов
/ 06 октября 2011

Я создаю программу на родном C ++ (без clr).Я использую инструментарий, который преобразует данные и обычно записывает их в файл или стандартный вывод.Проблема в том, что я хочу записать это в массив, и я не знаю размер, который будет отправлен.Для инструментария требуется параметр «FILE *», и его нельзя изменить.

Основной рабочий код:

FILE * ofile = fopen("yourfile.dat", "wb");
toolkit::function(ofile);
fclose(ofile);

для вывода первой строки будет

FILE * ofile = stdout;

Что я хочу сейчас, так это то, что у меня есть возможность выполнить функцию, в конце которой есть указатель на массив оп байтов (например, char *) и его размер.Я искал вокруг может найти решение.Первая запись в файл невозможна.

1 Ответ

1 голос
/ 06 октября 2011

Если я вас правильно понял, вам нужен объект FILE *, который будет хранить все байты, которые были записаны в него, в буфер памяти, верно?

fmemopen делает именно эту работу, но это POSIX.1-2008 и, согласно его man-странице, не широко доступно.

...