#include <stdarg.h> //调用该头文件
int mySnprintf(char *str, size_t size, const char *format, ...)
{
va_list args;
va_start(args, format); //初始化args,指定为 “最后一个固定参数”
int result = vsnprintf(str, size, format, args); // 返回实际写入str 目标存储区的字符数(不包括空字符)
va_end(args); // 清理
// 检查是否发生了缓冲区溢出
if (result >= size)
{
// 如果需要,可以在这里处理溢出情况,比如截断字符串或设置错误码
str[size - 1] = '\0'; // 确保字符串以空字符结尾
return -1; // 或者返回其他表示错误的值
}
return result;
}