NIFを使用してC-Erlangの統合を行っていて、Binary
を初期化し、そのデータを指すchar *を追加するのに問題があります。私は右やっていないんだものについてNIFを使ってErlangバイナリを作成し、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);
任意のアイデア:
は、私はこの方法でやっていますか?セグメンテーション違反が発生しています。
更新:セグメンテーション違反を取り除きました。しかし今、私はString
を含むErlangバイナリを返すことができません。
enif_make_string
をbinary.dataに使用すると、私はErlangで文字列を取得します。しかし、私がバイナリにenif_make_binary
を使用しようとすると、私はこのようなものを得ます<<0,0,0,0,0,0,0,0,112,40,129,20>>
変換するために何をする必要がありますか?
答えていただきありがとうございますが、ここでは機能しませんでした。 まだセグメント違反が発生しています。 –
'output_binary-> size'を' sizeof "に設定する必要があります。これは文字列" 'です。 – ouah
ありがとうございます。それはうまくいきましたが、私はStringでErlangバイナリを取得できませんでした。 (私は質問を更新しました) –