News for hackers. Stuff that matters.
Re:Beware of strncpy and strncat by kdelok on Wednesday June 06, 2018 @02:46PM (#17249889)
Is there any reason not to use snprintf for almost every application of string manipulation (aside from strduping)?
Re:Beware of strncpy and strncat by hxchen on Wednesday June 06, 2018 @03:33PM (#17250312)
Reason: performance.

If you just do string manipulation, memncpy is faster.

If you need to convert data type, like int to string, then use snprintf.

Re:Beware of strncpy and strncat by nneonneo on Wednesday June 06, 2018 @05:07PM (#17251130)
Yes, it seems I lied when I said sprintf is surprisingly fast. For most practical purposes it's fine, but if you need to do string manipulation in a hurry, strcpy/strlcpy are going to be faster.

See https://gist.github.com/nneonneo/f9dc5c1d1d342d25eae47d56dba... for a test harness. On my Mac, with a 16-byte string, 10 million loops:

    memcpy:     77406 us
    strlcpy:   101956 us
    strncpy:   177247 us
    sprintf:   730819 us
    snprintf:  699844 us
memcpy smokes sprintf - around 10x faster. The vast majority of sprintf's time is spent in setup; for large strings, the gap closes substantially.