Latest web development tutorials

Funkcje biblioteczne C - setvbuf ()

Biblioteka standardowa języka C - <stdio.h> Biblioteka standardowa języka C - <stdio.h>

opis

Funkcje biblioteki Cint setvbuf (FILE * stream, char * bufor, tryb int size_t rozmiar) , aby określić, jak bufor strumienia przepływu.

oświadczenie

Oto () Funkcja stwierdzenie setvbuf.

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

parametry

  • Strumień - Jest to wskaźnik na wskaźnik pliku do obiektu, plik identyfikatora obiektu otwartego strumienia.
  • Bufor - które są przypisane do bufora użytkownika.Jeśli jest ustawiony na NULL, funkcja automatycznie przypisać określony rozmiar bufora.
  • Tryb - określa tryb bufora pliku:
模式描述
_IOFBF全缓冲:对于输出,数据在缓冲填满时被一次性写入。对于输入,缓冲会在请求输入且缓冲为空时被填充。
_IOLBF行缓冲:对于输出,数据在遇到换行符或者在缓冲填满时被写入,具体视情况而定。对于输入,缓冲会在请求输入且缓冲为空时被填充,直到遇到下一个换行符。
_IONBF无缓冲:不使用缓冲。每个 I/O 操作都被即时写入。buffer 和 size 参数被忽略。
  • Wielkość - jest to rozmiar bufora w bajtach.

Wartość zwracana

Jeśli się powiedzie, funkcja zwraca 0, w przeciwnym wypadku zwraca wartość niezerową.

Przykłady

Poniższy przykład demonstruje setvbuf function () jest używana.

#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);
}

Załóżmy, skompilować i uruchomić powyższy program, który przyniesie następujące wyniki. Tutaj program, aby zapisać bufor wyjściowy dobuff, aż pierwsze wywołanie fflush ()przed rozpoczęciem buforowane wyjście z ostatnich 5 sekund snu. Będzie przed końcem programu, który przesyła pozostałą stdout.

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

Biblioteka standardowa języka C - <stdio.h> Biblioteka standardowa języka C - <stdio.h>