我有一个关于这个代码在https://curl.haxx.se/libcurl/c/ftpget.html的libcurl下载文件的大小超过缓冲区大小
在回调函数
static size_t my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
{
struct FtpFile *out=(struct FtpFile *)stream;
if(out && !out->stream) {
/* open file for writing */
out->stream=fopen(out->filename, "wb");
if(!out->stream)
return -1; /* failure, can't open file to write */
}
return fwrite(buffer, size, nmemb, out->stream);
}
如果文件大小超过什么缓冲区大小问题?我认为这个函数不会迭代调用,因为它每次都会覆盖文件。有没有解决它的方法?谢谢!
我不明白的问题。什么覆盖什么文件? – melpomene
@melpomene从下面的评论中复制:我的问题是,回调函数的单个调用不能完成加载整个文件,curl是否继续运行(多次调用回调函数)来完成文件下载?对不起,如果问一个非常愚蠢的问题。我不完全理解整个卷曲过程。谢谢! – user3113633
我从来没有用过,但卷曲我敢肯定它会反复调用回调函数。 – melpomene