1 问题的提出
int iOffset = 0;
//发现iOffset值为7,以前一直认为应该是3
iOffset += snprintf(buff,3,”%s”,”123456”);
2 分析
通过分析snprintf帮助手册,发现:
snprintf(to, size, “%s”, from);
当size>strlen(from)+1返回值为strlen(from)
当size<=strlen(from)+1返回值为strlen(from)+1
3 结论
1 sprintf和snprintf会自动在目地缓存后面添加一个’\0’
char buff[256];
memset(buff,’a’,256);
sprintf(buff,“%s”,”123”);
printf(“%s\n”,buff); //输出123
2 sprinf和snprintf的返回值是不一样的