icstringutils.c

来自「IBE是一种非对称密码技术」· C语言 代码 · 共 44 行

C
44
字号
/* Copyright 2003-2006, Voltage Security, all rights reserved.
*/
#include <stdio.h>
#include "icstringutils.h"
#include "stringutil.h"
#include "vibe.h"
#include "icutils.h"

int icSafeSnprintf (
   char *dest,
   int max,
   VoltLibCtx *libCtx,
   char *format,
   ...
   )
{
	va_list args;
	int len, toobig;

	va_start(args, format);

#if VOLT_OS == VOLT_WINDOWS_32
	len = _vsnprintf(dest, max, format, args);
#else
	len = vsnprintf(dest, max, format, args);
#endif

	va_end(args);

#if VOLT_OS == VOLT_WINDOWS_32
	toobig = (len < 0 || len == max) ? 1 : 0;
#else
	toobig = (len >= max) ? 1 : 0;
#endif

	if (toobig == 1)
	{
		dest[max - 1] = 0;
		return max - 1;
	}
	else
		return len;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?