Всегда ли snprintf завершает целевой буфер нулевым значением?
Другими словами, этого достаточно:
char dst[10];
snprintf(dst, sizeof (dst), "blah %s", somestr);
или вам нужно сделать это, если somestr достаточно долго?
char dst[10];
somestr[sizeof (dst) - 1] = '\0';
snprintf(dst, sizeof (dst) - 1, "blah %s", somestr);
Меня интересует и то, что говорится в стандарте, и то, что некоторые популярные библиотеки libc могут делать, что не является стандартным поведением.