snprintf()总是终止为null吗?
snprintf是否始终为null终止目标缓冲区? 换句话说,这是否足够: 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可能做什么(这不是标准行为)都感兴趣。