Latest web development tutorials

C-Bibliotheksfunktionen - setvbuf ()

C Standard-Bibliothek - <stdio.h> C Standard - Bibliothek - <stdio.h>

Beschreibung

C - Bibliotheksfunktionenint setvbuf (FILE * stream, char * buffer, int mode, size_t size) zu definieren , wie die Strömung Strompuffer.

Erklärung

Hier ist () Anweisung setvbuf Funktion.

int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

Parameter

  • Strom - Dies ist ein Zeiger Zeiger auf ein Objekt auf FILE, die Objekt - ID FILE einen offenen Stream.
  • Puffer - die dem Benutzerpuffer zugeordnet ist.Wenn auf NULL gesetzt ist, wird die Funktion automatisch eine festgelegte Puffergröße zuweisen.
  • Modus - Dies gibt den Dateipuffer - Modus:
模式描述
_IOFBF全缓冲:对于输出,数据在缓冲填满时被一次性写入。对于输入,缓冲会在请求输入且缓冲为空时被填充。
_IOLBF行缓冲:对于输出,数据在遇到换行符或者在缓冲填满时被写入,具体视情况而定。对于输入,缓冲会在请求输入且缓冲为空时被填充,直到遇到下一个换行符。
_IONBF无缓冲:不使用缓冲。每个 I/O 操作都被即时写入。buffer 和 size 参数被忽略。
  • Größe - das ist die Puffergröße in Byte.

Rückgabewert

Wenn dies gelingt, gibt die Funktion 0, andernfalls gibt es einen Wert ungleich Null.

Beispiele

Das folgende Beispiel zeigt setvbuf () Funktion verwendet wird.

#include <stdio.h>

int main()
{

   char buff[1024];

   memset( buff, '\0', sizeof( buff ));

   fprintf(stdout, "启用全缓冲\n");
   setvbuf(stdout, buff, _IOFBF, 1024);

   fprintf(stdout, "这里是 w3cschool.cc\n");
   fprintf(stdout, "该输出将保存到 buff\n");
   fflush( stdout );

   fprintf(stdout, "这将在编程时出现\n");
   fprintf(stdout, "最后休眠五秒钟\n");

   sleep(5);

   return(0);
}

Lassen Sie uns zusammenzustellen und um das obige Programm ausführen, das die folgenden Ergebnisse produzieren. Hier wird ein Programm zu speichern den Ausgabepuffer zupolieren, bis der erste Anruf (), umfflushbevor eine gepufferte Ausgang der letzten 5 Sekunden des Schlafes zu starten. Es wird vor dem Ende des Programms, die verbleibende Ausgabe an stdout zu senden.

启用全缓冲
这里是 w3cschool.cc
该输出将保存到 buff
这将在编程时出现
最后休眠五秒钟

C Standard-Bibliothek - <stdio.h> C Standard - Bibliothek - <stdio.h>