Hi;

Here is what the linux manpage says about the return value of fwrite:

RETURN VALUE

fread() and fwrite() return the number of items successfully read or written 
(i.e., not the number of characters).


Here is what the curl C API docs say about the return value for the function 
that implements 


CURLOPT_WRITEFUNCTION

Function pointer that should match the following prototype: size_t function( 
void *ptr, size_t size, size_t nmemb, void *userdata); This function gets 
called by libcurl as soon as there is data received that needs to be saved. The 
size of the data pointed to by ptr is size multiplied with nmemb, it will not 
be zero terminated. Return the number of bytes actually taken care of.


here is the sample implementation in ftpgetresp.c:

static size_t
write_response(void *ptr, size_t size, size_t nmemb, void *data)
{
  FILE *writehere = (FILE *)data;
  return fwrite(ptr, size, nmemb, writehere);
}


So, based on the fwrite manpage, this function should be returning the value of 
nmemb, not size*nmemb as the curl manpages and sample code seem to suggest.

It seems to me that both documents can not be correct. Am I misunderstanding 
something?

tnx!

johnu
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to