sprintf_s с слишком маленьким буфером

Следующий код вызывает ошибку и убивает мое приложение. Это имеет смысл, так как длина буфера составляет всего 10 байтов, а длина текста - 22 байта (переполнение буфера).

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

Как я могу поймать эту ошибку, чтобы я мог сообщить о ней, а не сбой моего приложения?

Редактировать:

После прочтения комментариев ниже я пошел с _snprintf_s. Если он возвращает значение -1, то буфер не был обновлен.

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 

Ответы на вопрос(6)

Ваш ответ на вопрос