CURLOPT_READFUNCTION - 如何从有效写入字节中区分错误

时间:2016-12-13 07:20:02

标签: curl libcurl

我对libcurl中的CURLOPT_READFUNCTION函数有疑问。

文档提到回调应该返回数字 写入字节数组的字节数 -

  • 例如,如果CURL要求写入100个字节而我的文件包含42个,那么我将写入42个字节并返回42个。
  • 但如果我有某种错误,我应该返回CURL_READFUNC_ABORT - 它的枚举号也是42.

有人知道curl如何区分这两种情况?

1 个答案:

答案 0 :(得分:1)

CURL_READFUNC_ABORT是0x10000000,这是一个你不能返回的值"读取的字节数"因为缓冲区永远不会那么大。因此,您的假设情况不会发生在现实世界中。

libcurl代码首先检查值CURL_READFUNC_ABORT是否导致CURLE_ABORTED_BY_CALLBACK返回码,或者如果值未对齐,则返回CURLE_READ_ERROR