Я делаю интеграцию C-Erlang с использованием NIF, и у меня возникают некоторые проблемы с инициализацией Binary
и добавлением символа *, указывающего на его данные.
Я делаю так:
ErlNifBinary *output_binary;
enif_alloc_binary(500, output_binary);
strcpy(output_binary->data, "Here is a string");
return enif_make_binary(env, output_binary);
Есть идеи о том, что я не правильно делаю? У меня ошибка сегментации.
ОБНОВЛЕНИЕ : Я избавляюсь от ошибки сегментации. Но теперь я не могу вернуть двоичный файл Эрланга, содержащий String
.
Используя enif_make_string
с двоичным файлом, я получаю строку на Эрланге. Но когда я пытаюсь использовать enif_make_binary
с двоичным файлом, я получаю такие вещи <<0,0,0,0,0,0,0,0,112,40,129,20>>
, что мне нужно сделать, чтобы преобразовать?