On Wed, Nov 27, 2024 at 09:59:04PM +0530 Advait Dhamorikar wrote: > In case of failure vsnprintf returns `pos`, an unsigned long integer. > An unsigned value can never be negative, so this test will always evaluate > the same way. 'man vsnprintf' on my system reveals a different behaviour: | The functions snprintf() and vsnprintf() do not | write more than size bytes (including the termi‐ | nating null byte ('\0')). 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. Thus, a return value of size or | more means that the output was truncated. (See | also below under NOTES.) | | If an output error is encountered, a negative | value is returned. vsnprintf prototypes also indicate 'int' as return type. What is the source of your mentioned findings? Kind regards, Nicolas