c / intermediate
Snippet
Anpassung der Stream-Pufferung mit setvbuf
Die Funktion setvbuf ermöglicht die manuelle Steuerung der Pufferung eines Dateistreams (wie stdout). Man kann zwischen voll gepuffert (_IOFBF), zeilengepuffert (_IOLBF) oder ungepuffert (_IONBF) wählen. Das Deaktivieren der Pufferung stellt sicher, dass Daten sofort auf das Ausgabegerät geschrieben werden, was für Logging-Systeme entscheidend ist.
snippet.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>int main() {// Disable buffering for stdout// Useful for real-time logging or debuggingif (setvbuf(stdout, NULL, _IONBF, 0) != 0) {perror("Failed to set buffering");}printf("This message appears immediately ");// No fflush(stdout) needed because buffering is offprintf("without waiting for a newline.\n");return 0;}
Erklärung
1
setvbuf(stdout, NULL, _IONBF, 0);
Ändert stdout in den ungepufferten Modus; NULL bedeutet interne Pufferzuweisung.
2
_IONBF
Konstante für 'Keine Pufferung' (unbuffered).
3
perror("Failed to set buffering");
Gibt eine Standardfehlermeldung aus, wenn die Pufferänderung fehlschlägt.