sprintf_s avec un tampon trop petit

Le code suivant provoque une erreur et tue ma demande. Il est logique que le tampon est à seulement 10 octets de long et le texte est de 22 octets de long (dépassement de tampon).

char buffer[10];    
int length = sprintf_s( buffer, 10, "1234567890.1234567890." ); 

Comment puis-je rattraper cette erreur afin que je puisse le signaler, au lieu de planter ma demande?

Edit:

Après avoir lu les commentaires ci-dessous, je suis allé avec _snprintf_s. Si elle renvoie une valeur de -1 puis le tampon n'a pas été mis à jour.

length = _snprintf_s( buffer, 10, 9, "123456789" );
printf( "1) Length=%d\n", length ); //Length == 9

length = _snprintf_s( buffer, 10, 9, "1234567890.1234567890." );
printf( "2) Length=%d\n", length ); //Length == -1

length = _snprintf_s( buffer, 10, 10, "1234567890.1234567890." );
printf( "3) Length=%d\n", length ); //Crash, it needs room for the NULL char 

source d'informationauteur Steven smethurst