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

CURLOPT_READFUNCTION - how to distinct error from valid written bytes

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

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

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

CURL_READFUNC_ABORT 是 0x10000000,这是一个你不能 return 作为 "number of bytes read" 的值,因为缓冲区永远不会那么大。因此,您假设的情况不会发生在现实世界中。

libcurl 代码首先检查值是否为 CURL_READFUNC_ABORT,这会导致 CURLE_ABORTED_BY_CALLBACK return 代码,或者如果值与传入的值不对齐,它将 return CURLE_READ_ERROR.