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

时间:2021-02-26 21:12:21

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

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

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

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

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

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

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

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