首页 > libcurl多线程下载开发过程中需要注意的一个问题

libcurl多线程下载开发过程中需要注意的一个问题

使用libcurl进行多线程开发,发现明明已经接收到正确的文件长度的数据,可是我却看到文件长度值比真实长度,计算其md5自然也会出错。

这不是我所希望看到。究竟是什么情况导致的呢?

后来发现,线程池销毁资源退出时,关闭了先前下载的文件,使得文件内容得到了更新,得到的文件长度是正确的,并且计算md5值也是正确的。但是如果文件不关闭,就可能不是这样。我起初一直怀疑我的代码有问题,纠结了好久。

下面附上几张相关的截图以作备忘。

当文件下载完但是未关闭时和文件关闭后, 注意文件大小和文件修改时间的变化



程序运行截图,可以看到明明是正确的文件长度10461256,但是显示的文件大小却是10461184



更多相关:

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  • 一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) := 'hellow world'; begindbms_output.put_line(mydate); end; declare是声明部分我在这个部分声明了varchar2类型的变量,名字叫mydata,内容是he...