当前位置:  技术问答>linux和unix

解决问题者40分奉上(文件下载问题)

    来源: 互联网  发布时间:2016-09-27

    本文导语:  我用libcurl库写了一个文件下载的程序,关于处理文件下载的选项如下: FILE* fd_rec = fopen("123","w");  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);  curl_easy_setopt(curl, CURLOPT_WRITEDATA, fd_rec);              其中write...

我用libcurl库写了一个文件下载的程序,关于处理文件下载的选项如下:
FILE* fd_rec = fopen("123","w");
 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
 curl_easy_setopt(curl, CURLOPT_WRITEDATA, fd_rec);

       
     其中write_data的函数定义如下:
static size_t  write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
  size_t retcode;
  retcode = fwrite(ptr, size, nmemb, (FILE *)stream);
 // fprintf(stderr, "*** We write %d bytes from filen", retcode);
  return retcode;
}


 其他的这里就省略掉了, 现在可以正常下载文件了,不过我现在想实现在下载的过程中可以停止下载,该怎么实现啊?

|
要终止libcurl的连接方法除了上面说的外,还可以用如下方法实现:
1、在回调函数中终止,要由用户控制的话,还是需要类似的全局变量和多线程。
2、冒充Server发送一个FIN分节给Client端。这个实现起来非常麻烦

|
在回调函数中返回一个不等于(size * nmemb)的值,就会使得libcurl终止操作,并返回一个错误代码。

|
补充一下,代码可以这样写:

if (continue==0) {
  myerrno=-123;
  return (size*nmemb+1);
}

myerrno是你自己定义的错误代码号,用于区分你自己终止传输还是确实系统写出错了。

    
 
 

您可能感兴趣的文章:

  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 硬盘分区后出现的问题,急待解决!!问题解决马上给分。
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 解决多级索引速度慢的问题可否像解决多级页表那样使用TLB?
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 呵呵,前段时间Ubuntu服务器版的问题总算解决了,解决方法就是重新安装桌面版-_-!
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • 问发这问题"arprequest : Invalid argument"的朋友,你的问题解决了吗?
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 现在在公司遇到一个解决不了的页面缓存问题,在线等到下班,谁解决谁100分
  • c/c++服务器程序内存泄露问题分析及解决
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • Linux 下c++开发error while loading shared libraries问题解决
  • 如何解决安装问题!!??
  • HTML <!DOCTYPE> 标签用法详解及如何解决<!DOCTYPE html>未声明时导致页面无效的问题
  • 超初级问题:显示乱码的问题怎么解决?
  • Windows C/ C++堆相关问题及解决思路
  • 有关ResultSet的问题,帮助解决问题者另外加分...
  • Andriod上ANR介绍及ANR问题解决方法
  • 亟待解决的问题!Makefile问题
  • 访问JSP文件或者Servlet文件时提示下载的解决方法
  • 为什么我上传文件的时候,如果遇到文件名是中文的,虽然可以上传,但不可以下载,怎么解决?
  • 我代理的虚拟主机,当访问量网站系统的模板文件如INDEX.DWT能下载下来.如何解决
  • android 下载时文件名是中文和空格会报错解决方案
  • IIS、Apache、Nginx下用IE下载apk文件变成zip的解决办法
  • Java下载文件时文件名乱码问题解决办法
  • Windows Server 2003服务器无法下载.exe文件的解决方法
  • FF浏览器和IE下载文件乱码问题的解决方法
  • 有这样一个关于动态生成文件并提供下载的难题,不知道大家有什么好的解决办法没有?(三根鸡毛!)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助文件操作中修改文件中字段的问题,请大家帮忙解决
  • 为什么在KNOME下复制文件时文件管理器经常崩溃?有何解决办法?
  • ubuntu下修改 vim 配置 将 .inc 后缀文件 动态当作不同文件对待的解决办法
  • qt生成的EXE文件需要它本身的DLL文件才能执行。请问怎么解决
  • 一些文件未注册导致mssql表文件无法找开的解决方法
  • linux下copy文件通常又些文件名的大小写会发生变化的,而linux又对大小写敏感,如何解决这一问题
  • hp-ux上的裸设备文件怎么突然变成文件系统了,请高手解决。
  • 编译内核时出现同名文件该怎么解决
  • 完成一个文件上传需要解决那些问题?
  • 去掉vs2010中ipch文件和.sdf文件的解决方法
  • sh命令能不能拆分某文件?急求解决方法??
  • IIS7无法读取配置文件解决办法
  • 我使用的是root用户登陆,但却不能编辑/etc/profile文件,该如何解决。
  • linux FC5下用程序生成的文件中,中文变成问号,怎么解决?
  • 新手初到跪求大虾linux系统自动生成同名的文件与后缀~文件解决办法
  • 请问如何解决因为库的版本与文件系统不兼容引起的段错误?
  • 删除文件,求解决
  • 部署到iis后无法加载运行CSS文件的解决方法
  • 用itext生成pdf文件,请问如何解决中文问题。
  • 设置了alias以后重新登录就没有了,怎么解决呢?设什么权限可以删除文件?
  • secureCRT下Linux终端汉字乱码解决方法
  • VS2005解决方案管理器中不显示解决方案节点的解决办法
  • window.onload事件覆盖掉body onload事件(window.onload和html body onload事件冲突)解决办法
  • 有高手能破解RAR的密码吗,至今没有找到人能解决?(先只给10分意思意思,若解决,至少给解决的人500分!说话算话!)
  • andriod中UIScrollView无法正常滚动的解决方法
  • 解决 select 挡住div的解决方法
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 解决!解决!求助如何安装多系统!
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • Liunx命令tar压缩出现如下错误该怎么解决?急需解决!感谢
  • 安装hadoop时出现内存不够及其它一些常见的hadoop错误解决办法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3