Home » Linux Manpages » setvbuf
[   Print   ]

setvbuf

Linux Manpage


ÜBERSICHT

       #include <stdio.h>

       int setbuf( FILE *stream, char *buf);
       void setbuffer(FILE *stream, char *buf, size_tsize);
       void setlinebuf(FILE *stream);
       int setvbuf( FILE *stream, char *buf, int mode , size_t size);

BESCHREIBUNG

       Die drei Typen der verfügbaren Pufferungen sind nicht-gepuffert, block-
       gepuffert und zeilen-gepuffert.  Wenn  ein  Ausgabe-Stream  ungepuffert
       ist,  erscheinen die Informationen in der Zieldatei oder auf dem Termi-
       nal direkt nachdem sie geschrieben wurden.   Wenn  die  Ausgabe  block-
       gepuffert  ist,  werden viele Zeichen erst einmal gesammelt und dann in
       einem Rutsch ausgegeben.  Wenn die Ausgabe zeilen-gepuffert ist, werden
       die  Zeichen  bis zu einem Newline-Zeichen gesammelt und erst dann aus-
       gegeben, oder Eingaben wurden von einem beliebigen Datenstrom  gelesen,
       der  mit  dem  Eingabegerät  verbunden  ist (üblicherweise stdin).  Die
       Funktion fflush(3) darf dazu verwendet werden, ein Leeren  des  Puffers
       zu  erzwingen.   (Siehe auch fclose(3)) Normalerweise sind alle Dateien
       block-gepuffert.   Wenn  die  erste  I/O-Operation  auf   einer   Datei
       durchgeführt  wird,  wird  malloc(3)  aufgerufen  und  ein  Puffer wird
       angelegt.  Wenn ein Datenstrom mit einem Terminal  verbunden  ist  (wie
       stdout  normalerweise),  ist  er zeilen-gepuffert.  Der normale Fehler-
       strom (stderr) ist per default immer nicht-gepuffert.

       Die Funktion setvbuf wird genutzt, um zu jedem beliebigen Zeitpunkt die
       Pufferung  eines  geöffneten  Streams  zu ändern.  Als mode - Parameter
       wird einer der drei folgenden Konstanten verwendet:

              _IONBF Nicht gepuffert

              _IOLBF Zeilenpufferung

              _IOFBF Blockpufferung

       Mit Ausnahme von ungepufferten Dateien sollte mit buf  ein  Zeiger  auf
       einen  Puffer  angegeben  werden,  der  mindestens  size Byte groß ist.
       Dieser Puffer wird anstelle des momentanen Puffers verwendet.  Wenn für
       buf  NULL, angegeben wird, wird nur mode modifiziert. Bei der naechsten
       Schreib- oder Leseoperation wird ein neuer Puffer allokiert.  Die Funk-
       tion  setvbuf kann nur dann auf einen geöffneten Stream angewendet wer-
       den, wenn er nicht ``aktiv´´ ist. Das heißt, vor der ersten  Ein-  bzw.
       Ausgabe oder unmittelbar nach einem fflush.

       Die  anderen  drei  Funktionen  sind  im  Endeffekt einfache Aliase für
       Aufrufe von setvbuf.  Die Funktion setbuf entspricht genau dem  folgen-
       dem Aufruf:

         setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);

       Die  Funktion setbuffer ist die gleiche, bis auf die Tatsache, dass die
       und sollte deshalb vermieden werden.

       Es  muss  sichergestellt sein, dass der Puffer buf zu dem Zeitpunkt, zu
       dem der Stream stream geschlossen wird, noch existiert,  was  ebenfalls
       bei Programmende geschieht.

       Im  folgenden  Beispiel wird der Stream stdin erst geschlossen wenn buf
       nicht mehr existiert.  Dieser Code ist nicht zulässig:

       #include <stdio.h>
       int main()
       {
           char buf[BUFSIZ];
           setbuf(stdin, buf);
           printf("Hello, world!
");
           return 0;
       }

SIEHE AUCH

       fopen(3),   fflush(3),   fclose(3),   fread(3),   malloc(3),   puts(3),
       printf(3).

BSD MANPAGE                     26. Januar 1997                      SETBUF(3)

Man(1) output converted with man2html
Ähnliche Artikel:
abs, accept, access, acct, acos, acosh, addmntent, adjtimex, alarm, alloca,
Arrow setutent sgetmask Arrow
Verwandte Produkte und Suchanfragen anderer Besucher:
setvbuf, printf gepuffert, eingabe ausgabe stream linux, setvbuf size 0, setvbuf linux example, stdin setvbuf, linux streamer blöcke, setvbuf stdin, linux ausgabe gepuffert, linux ausgabe blockweise, beispiel linux setvbuf(stdin null), setvbuf linux beispiel, linux setvbuf, gepufferte eingabe ausgabe in linux,

Tag Clouds

beschreibung Übersicht #include < ausgabe ausgabe-stream block- buf char direkt drei erscheinen file gepuffert geschrieben h> informationen int linux manpage mode nal nicht-gepuffert pufferungen setbuf setbuffer setlinebuf setvbuf size size_t size_tsize stdio stream termi- typen ungepuffert verfügbaren void wurden zeilen-gepuffert zieldatei

Social-Bookmark

Diesen Artikel bookmarken
bei ...

delicious Facebook Google Linkarena Mister Wong oneview
Socializer Twitter Webnews Yahoo MyWeb YiGG

Was sind Social Bookmarks? Social Bookmarks
Social Bookmarks sind Lesezeichen, die im Internet von verschiedenen Benutzern durch gemeinschaftliches Indexieren erschlossen werden.

In sogenannten Social-Bookmark-Netzwerken können angemeldetet Benutzer Links und Nachrichtenmeldungen sammeln und andere Benutzer so auf interessante Inhalte aufmerksam machen.

Update: 02.02.2012 06:46