Posted on 2010-09-21 21:38
Tommy Liang 阅读(356)
评论(0) 编辑 收藏 引用
snprintf函数并不是标准c/c++中规定的函数,但是在许多编译器中,厂商提供了其实现的版本。
在gcc中,该函数名称就snprintf,而在VC中称为_snprintf。
由于不是标准函数,没有一个统一的标准来规定该函数的行为,所以导致了各厂商间的实现版本可
能会有差异。今天也的的确确看到了差异,因为这个小小的差异是我的程序无法正常的处理数据。
这个小小的差异发生在count参数。在VC中,这个count就是要写入的总字符串字符数,例如:
//VC
int main(int argc, char* argv[])
{
char buff[100];
printf("%d ",_snprintf(buff,10,"1234567890ab"));
printf("%s",buff);
return0;
}
//Linxu:gcc/g++
#include <stdio.h>
int main(int argc, char* argv[])
{
char buff[100];
printf("%d ",snprintf(buff,10,"1234567890ab"));
printf("%s",buff);
return0;
}