passage/minorGems/util/test/testSnprintf.cpp
2025-10-03 02:19:59 -04:00

58 lines
1.2 KiB
C++

/*
* Modification History
*
* 2004-January-15 Jason Rohrer
* Created.
*/
/**
* A test program for snprintf behavior.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int numStrings = 3;
// test strings of length 3, 4, and 5
const char *testStrings[3] = { "tst", "test", "testt" };
int result;
// a buffer of length 4, which IS NOT large
// enough to hold the last two testStrings
char *buffer = (char*)( malloc( 4 ) );
int i;
for( i=0; i<numStrings; i++ ) {
// clear buffer with 'a' characters
memset( (void*)buffer, (int)( 'a' ), 4 );
// print testStringA into buffer
result = snprintf( buffer, 4, "%s", testStrings[i] );
printf( "Printed string of length %d to buffer of "
"size 4 with snprintf.\n"
"Return value = %d\n",
strlen( testStrings[i] ),
result );
if( buffer[3] == '\0' ) {
printf( "Buffer was null-terminated by snprintf\n\n" );
}
else {
printf( "Buffer was NOT null-terminated by snprintf\n\n" );
}
}
free( buffer );
return 0;
}