Frage zu sprintf und Co.
-
Gibt es eine Möglichkeit vor einem sprintf-Aufruf festzustellen, wie groß der Zielpuffer sein muss? Kennt jemand eine fertige Funktion? Ich möchte ungerne eine solche Funktion selbst schreiben. Mir wäre es zu aufwendig/zeitintensiv alle Formate zu implementieren.
-
Im Prinzip ja, aber das willst Du wahrscheinlich nicht.
Die printf-Familie gibt die Anzahl der geschriebenen Zeichen ohne die '\0' zurück, so daß Du einfach einen Dummy (/dev/null) nehmen kannst und dort deinen Ausdruck hinschreibst, den Rückgabewert abspeicherst und entsprechend Speicher bereitstellst. Die Lösung ist ziemlich genau so, wie sie sich anhört: häßlich.
Kennst Du snprintf schon? Dort kannst Du angeben, wie viele Zeichen höchstens geschreiben werden dürfen.