首先开启下载的时候 要注册进度的callback函数, 使用该选项进行注册 CURLOPT_PROGRESSFUNCTION,
(在注册进度callback之前需要先将 CURLOPT_NOPROGRESS 的值置为0 否则注册函数不会被调用)
你所注册的这个进度函数 如果返回非零值 那么整个CURL就会中断并返回CURLE_ABORTED_BY_CALLBACK,原文如下
Returning a non-zero value from this callback will cause libcurl to abort the transfer and return CURLE_ABORTED_BY_CALLBACK.
所以当你想手动取消下载的时候 只需要通过全局变量控制 让该注册函数返回非零值即可。
如果想看程序例子可以 阅读此文章(该文章中 通过变量 m_bStop来控制是否中止下载):
https://blog.csdn.net/dingxz105090/article/details/52621614