4 Stimmen

wird 'printf' immer seine Aufgabe erfüllen?

printf("/*something else*/"); /*note that:without using \n in printf*/

Ich weiß, dass printf() einen Puffer verwendet, der ausgibt, was er enthält, wenn im Zeilenpuffer " \n " wird von der Pufferfunktion gesehen. Wenn wir also vergessen, " \n "in printf(), wird der Zeilenpuffer selten nicht geleert. Daher wird printf() seine Aufgabe nicht erfüllen. Liege ich falsch?

0voto

sigfpe Punkte 7776

printf könnte aus einer Vielzahl von Gründen scheitern. Wenn Sie tief in einer Rekursion stecken, kann der Aufruf von printf kann Ihren Stapel sprengen. Die C- und C++-Standards sagen wenig zu Fragen des Threading und des Aufrufs von printf während printf in einem anderen Thread ausgeführt wird, kann fehlschlagen. Es könnte fehlschlagen, weil stdout an eine Datei angehängt ist und Sie gerade Ihr Dateisystem gefüllt haben. In diesem Fall sagt Ihnen der Rückgabewert, dass es ein Problem gab. Wenn Sie printf mit einer Zeichenkette, die nicht mit Null abgeschlossen ist, könnten schlimme Dinge passieren. Und printf kann offenbar fehlschlagen, wenn Sie gepufferte E/A verwenden und Ihr Puffer noch nicht geleert wurde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X