[code]

#include <stdio.h>
#include <string.h>

static const int BUFSIZE = 4;

void dump(char* p, int size)
{
	for (int i = 0; i < size; i++)
	{
		unsigned char ch = *p;
		printf("%02X ", ch);
		p++;
	}
	printf("\n");
}

int main()
{
	char buf[BUFSIZE];
	int res;

	memset(buf, 0xFF, BUFSIZE);
	res = snprintf(buf, BUFSIZE, "%s", "\n");
	printf("res=%d ", res);
	dump(buf, BUFSIZE);

	memset(buf, 0xFF, BUFSIZE);
	res = snprintf(buf, BUFSIZE, "%s", "a\n");
	printf("res=%d ", res);
	dump(buf, BUFSIZE);

	memset(buf, 0xFF, BUFSIZE);
	res = snprintf(buf, BUFSIZE, "%s", "ab\n");
	printf("res=%d ", res);
	dump(buf, BUFSIZE);

	memset(buf, 0xFF, BUFSIZE);
	res = snprintf(buf, BUFSIZE, "%s", "abc\n");
	printf("res=%d ", res);
	dump(buf, BUFSIZE);

	memset(buf, 0xFF, BUFSIZE);
	res = snprintf(buf, BUFSIZE, "%s", "abcd\n");
	printf("res=%d ", res);
	dump(buf, BUFSIZE);

	return 0;
}


[result]

res=1 0A 00 FF FF 
res=2 61 0A 00 FF 
res=3 61 62 0A 00 
res=4 61 62 63 00 
res=5 61 62 63 00 


[download]

snprintf_test.tar.gz