042
17.11.2016, 13:40 Uhr
Joe1903
|
Zitat von ao: |
Hier ist die entscheidende Stelle aus der snprintf-Beschreibung:
Zitat: |
Return value: The number of characters that would have been written if n had been sufficiently large, not counting the terminating null character. If an encoding error occurs, a negative number is returned. Notice that only when this returned value is non-negative and less than n, the string has been completely written.
|
Auf Deutsch: snprintf liefert die Anzahl Zeichen zurück, die zur Darstellung des Textes benötigt werden. Wenn diese Anzahl kleiner ist als die reingegebene Pufferlänge (also sizeof (BUFFER)), dann konnte der gesamte Text in den Puffer geschrieben werden. Ist die Anzahl größer oder gleich sizeof (BUFFER), dann fehlt am Ende ein Stück. Wenn die Rückgabe negativ ist, ist irgendein Fehler passiert, und der Buffer-Inhalt ist sowieso nicht zu gebrauchen.
Das heißt für dich: Wenn du aus snprintf weniger als sizeof (BUFFER), aber was Positives rausbekommst, ist alles gut. Bekommst du das gleiche oder mehr, musst du "not enough space" ausgeben.
|
Aber genau das habe ich doch in dem Post drüber.. |