Latest web development tutorials
×

C курс

C Язык учебника C Краткое введение C параметры окружающей среды C Структура программы C Базовый синтаксис C Типы данных C переменная C постоянная C Storage Class C операторы C судья C циркуляция C функция C Обзорное правила C массив C указатель C строка C структура C союз C поле Bit C typedef C Входной и Выходной C грамотность документов C препроцессор C заголовок C Слепки C Обработка ошибок C Рекурсия C Переменный параметр C Управление памятью C Параметры командной строки C Классические 100 случаев

C Стандартная библиотека

C Стандартная библиотека - справочное руководство C Стандартная библиотека - <assert.h> C Стандартная библиотека - <ctype.h> C Стандартная библиотека - <errno.h> C Стандартная библиотека - <float.h> C Стандартная библиотека - <limits.h> C Стандартная библиотека - <locale.h> C Стандартная библиотека - <math.h> C Стандартная библиотека - <setjmp.h> C Стандартная библиотека - <signal.h> C Стандартная библиотека - <stdarg.h> C Стандартная библиотека - <stddef.h> C Стандартная библиотека - <stdio.h> C Стандартная библиотека - <stdlib.h> C Стандартная библиотека - <string.h> C Стандартная библиотека - <time.h>

Функции библиотеки C - setvbuf ()

C стандартная библиотека - <stdio.h> C стандартная библиотека - <stdio.h>

описание

Функции библиотеки CINT setvbuf (FILE * поток, символ * буфера, режим INT, size_t размера) , чтобы определить , как буфер потока потока.

заявление

Здесь () функция утверждение setvbuf.

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

параметры

  • Поток - это указатель на FILE указатель на объект, идентификатор объекта FILE открытого потока.
  • Буфер - который назначается буфер пользователя.Если установлено значение NULL, то функция автоматически назначит заданный размер буфера.
  • Режим - указывает режим буфера файла:
模式描述
_IOFBF全缓冲:对于输出,数据在缓冲填满时被一次性写入。对于输入,缓冲会在请求输入且缓冲为空时被填充。
_IOLBF行缓冲:对于输出,数据在遇到换行符或者在缓冲填满时被写入,具体视情况而定。对于输入,缓冲会在请求输入且缓冲为空时被填充,直到遇到下一个换行符。
_IONBF无缓冲:不使用缓冲。每个 I/O 操作都被即时写入。buffer 和 size 参数被忽略。
  • размер - это размер буфера в байтах.

Возвращаемое значение

В случае успеха функция возвращает 0, в противном случае она возвращает значение отличное от нуля.

примеров

Следующий пример демонстрирует функцию setvbuf () используется.

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

Давайте скомпилировать и запустить эту программу, которая будет производить следующие результаты. Здесь программа для сохранения выходного буфераположительный эффект, пока первый вызов не fflush (), прежде чем начать буферизированный вывод последних 5 секунд сна. Это будет до конца программы, чтобы отправить оставшийся вывод на STDOUT.

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

C стандартная библиотека - <stdio.h> C стандартная библиотека - <stdio.h>