libcurlを使用するC/C++でQTアプリケーションを開発しようとしています。単純に、私はファイルにVERBOSEデータを保存したいと思います。 libcurlのAPIドキュメントでは、(https://curl.haxx.se/libcurl/c/CURLOPT_VERBOSE.html)libcurlから冗長な情報をファイルに取得する
詳細な情報がstderrに送信され、またはストリームがCURLOPT_STDERRに設定されると言われています。
したがって、VERBOSEの情報はstderrになります。そして、私がCURLOPT_STDERR(https://curl.haxx.se/libcurl/c/CURLOPT_STDERR.html)のリンクをたどった後、
パラメータとしてFILE *を渡します。プログレスメーターを表示してCURLOPT_VERBOSEデータを表示するときに、stderrの代わりにこのストリームを使用するようにlibcurlに指示します。
CURLOPT_STDERRリンクにコードサンプルがあります。
CURL *curl = curl_easy_init();
FILE *filep = fopen("dump.txt", "wb");
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com");
curl_easy_setopt(curl, CURLOPT_STDERR, filep);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_perform(curl);
}
CURLcode res = curl_easy_perform(curl);
if (CURLE_OK != res) {
fprintf(stderr, "curl told us %d\n", res);
}
curl_easy_cleanup(curl);
fclose(filep);
しかし、詳細な情報は、コマンドラインで示されておらず、詳細な情報のために作成されたファイルが空である:私は自分のアプリケーションでそれを試してみました。どうすればこの問題を解決できますか?
正しい出力は標準エラー出力に表示していますか? (ie-console) –
@johnelemansこのコードでコンソールに詳細な情報が表示されません。 – user3035291
コードは大丈夫です。リダイレクトなしでstderrへの出力があることを確認し、そうでなければ最初にデバッグしてください。 –