2010-12-20 5 views
2

Von here:CRT 9.0 vsprintf_s Parameter Validation auf einem langen Format-String

Die Versionen dieser Funktionen mit _s und _p Suffixe sind die sichereren Versionen. Diese Versionen validieren die Formatzeichenfolgen und generieren eine Ausnahme , wenn die Formatzeichenfolge nicht wohlgeformt ist (z. B. wenn ungültige Formatierungszeichen verwendet werden).

Ich habe gerade festgestellt, dass die Formatzeichenfolge als nicht gut ausgebildet gilt, wenn sie größer als die Ausgabepuffergröße ist. Kennt jemand Dokumentation, die dies für alle * _s Druckfunktionen bestätigt?

Dank

Antwort

1

wie das Standardverhalten Sieht aus ist der CRT Fehler zu werfen, wenn die Ausgabepuffergröße überschritten wird, unabhängig von der Quelle. Ich erwartete, dass die Ausgabe automatisch abgeschnitten wird, wenn die Ausgabepuffergröße überschritten wird. Daher ist es sinnlos, den Formatstring auszufüllen, wenn er bereits zu lang ist.

+0

Die Verwendung von 'vsnprintf_s' anstelle von' count = _TRUNCATE' scheint stattdessen wie erwartet zu funktionieren. – wimh