HEADERとNOBODYを指定して,performしたあとで,CONTENT_LENGTH_DOWNLOADを取ると長さが分かる.
curl_easy_setopt(dwHandle, CURLOPT_URL, url); curl_easy_setopt(dwHandle, CURLOPT_HEADER, 1); curl_easy_setopt(dwHandle, CURLOPT_NOBODY, 1); curl_easy_setopt(dwHandle, CURLOPT_WRITEFUNCTION, &func); curl_easy_perform(dwHandle); curl_easy_getinfo(dwHandle, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &dSize);httpの場合は,head メソッドを使ってcontent-lengthだけ取得しているのだろう.fileの場合はstatでとればいいのでさらに簡単なはずなのだが.
しかたがないのでソースをダウンロードして追ってみると,ちゃんとstatはしている.にもかかわらず,外のプログラムからアクセスできる構造体に設定していないようだった.ので,そこだけちょっと修正したら,動いているっぽい.
とりあえず,MLでレポートしておいたが,さてどうしたものか.CURLにパッチ当てなければ動かないのではソフトとしてリリースできないしなあ...
1 件のコメント:
なんと,もうコミットされたらしい...はやい!
コメントを投稿