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