NIF を使用して C-Erlang 統合を行っていますが、初期化しBinary
てそのデータを指す char * を追加するのに問題があります。
私はこのようにしています:
ErlNifBinary *output_binary;
enif_alloc_binary(500, output_binary);
strcpy(output_binary->data, "Here is a string");
return enif_make_binary(env, output_binary);
私が正しくやっていないことについてのアイデアはありますか? セグメンテーション違反が発生しています。
更新: セグメンテーション違反を取り除きます。しかし、今では . を含む Erlang バイナリを返すことができませんString
。
enif_make_string
binary.data を使用すると、Erlang で文字列が得られます。しかしenif_make_binary
、バイナリで使用しようとすると、次のような<<0,0,0,0,0,0,0,0,112,40,129,20>>
ものが表示されます。変換するには何をする必要がありますか?