2011-12-15 7 views
0

私はこのすべてのものの完全な初心者です、そして、私はプラグインを開発しています。私はlibcurlを使ってファイルをアップロードする必要があります。問題は、そのファイルがディスク上にないこと、そのコンテンツ上のポインタがプラグインに渡されることです。だから私の質問は、私はFILE * varが必要なファイルをアップロードするが、私はvoid *を持っているということです。私は何をすべきか?void * to FILE * ...可能ですか?

ありがとうございます!

+0

いつでもデータを一時ファイルに書き込んで送信できます。 –

+0

あなたが持っているものがすべて 'void *'ならば、あなたがキャストできるようにどのデータ型が指しているか分からない限り、絶対に何も*できません。だから、そのポインタは何であるはずですか? – Jon

+0

@ジョン:それは本当ではない...彼はいくつかの未知のバイナリブロブとそのサイズ(私は思う)へのポインタを持って、あなたはこのデータをアップロードするために/それをファイルに書き込む/それはどこかに一般的に格納するために何も必要はありません。 –

答えて

3

this exampleに指定されているように、FILE *を提供する代わりに、読み取りコールバックを使用してアップロードを実行できます。コールバックでは、アップロードするデータを指定されたバッファにコピーできます。

+0

この例を見て、そこに 'curl_easy_setopt(curl、CURLOPT_READDATA、hd_src);が追加されましたそのファイルが本当に必要であることを意味しますか? – Eugeny89

+0

いいえ、これはread_callback関数の最初のパラメータとして提供される任意のパラメータです。 'void *'と内容のサイズを含む 'struct'へのポインタを使うべきでしょう。 –

+0

ご清聴ありがとうございます! – Eugeny89

関連する問題