【发布时间】:2012-06-05 09:20:48
【问题描述】:
我对 snprintf 函数感到困惑。 首先我没有在stdio.h下的turbo C版本编译器中找到函数snprintf 其次,在 GNU 编译器中,当缓冲区大小小于格式化字符串时,snprintf 返回 -1,尽管如果缓冲区大小足够大,它应该返回已打印的字符数。我有以下来源:
#include<stdio.h>
int main()
{
char str[100];
int numchar = snprintf(str,2,"ello jdj");
printf("%d\n",numchar);
return 0;
}
根据我目前对 snprintf 的了解,此代码应输出 8。但它在我的 GNU 编译器中返回 -1。背后的真相是什么?
【问题讨论】: