...
Note that for strncpy() it makes sense to maintain the n parameter as the caller may only wish to copy a subset of the total number of elements. For strncat() the n parameter is no longer required.
Compliant Solution (TR24731-1)
TR24731-1, which will be an appendix in C1x, prescribes the addition of "secure" versions of the noncompliant examples provided above.
...
There are two notable differences between the compliant solution above and the secure versions from TR24731-1. First, the TR24731-1 versions use rsize_t instead of size_t. This allows the size to compared against the reasonable limit for a single object, RSIZE_MAX. Second, the TR24731-1 versions do not require an element count for the second array. Consequently, these functions have limited ability to validate the input for s2. However, a size value for s1 is required so memory outside of the range for s1 should not be overwritten.
...