On Sat, Apr 21, 2018 at 11:47:52AM +0200, Dávid Bolvanský wrote:
> Hello,
>
> #include <math.h>
> int main(void)
> {
> char buf[10];
> return snprintf(buf, 0, "string");
> }
>
> GCC simplifies it to
> main:
> mov eax, 6
> ret
>
> but 0 is correct I think.
No, 6 seems to be the correct value:
If the output was truncated due to this limit, then the return value
is the number of characters (excluding the terminating null byte) which would
have been written
to the final string if enough space had been available.
Marek