根据 http://linux.die.net/man/3/sprintf 和 http://www.cplusplus.com/reference/cstdio/sprintf/,
sprintf()
函数及其相关函数在成功时返回写入字符的数量。在失败时,会返回负值。如果格式字符串格式不正确,则可能会发生错误,因此负返回值可能表示除 malloc()
错误之外的其他情况。那么,是否会设置 errno
来指示错误是什么?
sprintf()
失败后设置errno
)时,这意味着什么,但POSIX需要吗?我不清楚POSIX在这个问题上的作用 - 如果我编写调用sprintf()
的C代码,我猜我正在调用一个libc函数...但是是什么决定了我是否得到了所需的POSIX行为呢? - StoneThrow