libcURL -如何在c++中停止向命令行输出
libcURL - How to stop output to command line in c++
如何在libcurl中阻止/删除/停止打印/输出到命令行?由于某种原因,下面的代码可以用于url,但是当我点击带有图像的页面时,比如http://192.168.123.123/banana.gif
,它就崩溃了:
CURL *session;
session = curl_easy_init();
curl_easy_setopt(session, CURLOPT_URL, "http://192.168.123.123/banana.gif");
CURLcode curl_code = curl_easy_perform (session);
long http_code = 0;
curl_easy_getinfo(session, CURLINFO_RESPONSE_CODE, &http_code);
这是因为您没有设置CURLOPT_WRITEDATA
选项:
内部CURLOPT_WRITEFUNCTION会将数据写入带有该选项的FILE *,如果没有设置,则写入到stdout。
如果您决定完全忽略响应数据,您可以做的是将其写入/dev/null
:
/* ... */
FILE *devnull = fopen("/dev/null", "w+");
curl_easy_setopt(session, CURLOPT_WRITEDATA, devnull);
CURLcode curl_code = curl_easy_perform(session);
fclose(devnull);
/* ... */
另一种选择是使用NOOP写函数:
curl_easy_setopt(session, CURLOPT_WRITEFUNCTION, noop_cb);
其中write函数只是返回接收到的字节数:
size_t noop_cb(void *ptr, size_t size, size_t nmemb, void *data) {
return size * nmemb;
}
相关文章:
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 在 Windows 命令行中运行.exe在使用 2 种相同方式执行时会产生不同的输出
- 编写程序以将指令输出到 Windows 命令行
- 使用命令行标志删除Google测试锅炉框架输出
- 在 C++ 中逐行读取命令行的输出到字符串向量中
- Arduino:AT命令-使用serial.Read()读取串行输出的最后一行
- 将另一个命令行程序的输出加载到我的
- 从 Ubuntu 中的 Qt GUI 应用程序运行多个命令行应用程序并获取控制台输出
- 将命令行输出打印到Linux(Ubuntu)的文本文件中
- C++捕获输入的命令行并逐行输出
- 输入/输出从命令行可执行文件重定向到文件
- 将命令行实用程序的输出传递给编译器/链接器
- Linux将连续输出作为命令行参数传递
- 安装用C++编写的Python包(leven)时出错:g++无法识别的命令行选项--输出lib
- 试图输出命令行参数会产生一个看似随机的十六进制数
- 自动使输出二进制文件大于命令行编译的二进制文件
- 如何使用命令行参数写入和输出文件
- 在使用模拟命令行循环的API时,如何重定向CLIPS的输入和输出?
- 如何从其他命令行接口程序获得输出
- libcURL -如何在c++中停止向命令行输出