docs/CURLOPT_WRITEFUNCTION: size is always 1 #2787
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For compatibility with
fwrite
, theCURLOPT_WRITEFUNCTION
callback ispassed two
size_t
parameters which, when multiplied, designate thenumber of bytes of data passed in. In practice, CURL always sets the
first parameter (
size
) to 1.This practice is also enshrined in documentation and cannot be changed
in future. The documentation states that the default callback is
fwrite
, which meansfwrite
must be a suitable function for thispurpose. However, the documentation also states that the callback must
return the number of bytes it successfully handled, whereas ISO C
fwrite
returns the number of items (each of sizesize
) which itwrote. The only way these numbers can be equal is if
size
is 1.Since
size
is 1 and can never be changed in future anyway, documentthat fact explicitly and let users rely on it.