setbuf
|
Определено в заголовочном файле
<stdio.h>
|
||
|
void
setbuf
(
FILE
*
stream,
char
*
buffer
)
;
|
(до C99) | |
|
void
setbuf
(
FILE
*
restrict
stream,
char
*
restrict
buffer
)
;
|
(начиная с C99) | |
|
#define BUFSIZ /*unspecified*/
|
||
Устанавливает внутренний буфер для использования в операциях потока. Он должен быть длиной не менее
BUFSIZ
символов.
Если
buffer
не является нулевым указателем, эквивалентно
setvbuf
(
stream, buffer,
_IOFBF
,
BUFSIZ
)
.
Если
buffer
является нулевым указателем, эквивалентно вызову
setvbuf
(
stream,
NULL
,
_IONBF
,
0
)
, что отключает буферизацию.
Содержание |
Параметры
| stream | - | файловый поток, для которого устанавливается буфер |
| buffer | - | указатель на буфер для использования потоком. Если передан нулевой указатель, буферизация отключается |
Возвращаемое значение
Нет.
Примечания
Если BUFSIZ не является подходящим размером буфера, setvbuf может быть использована для его изменения.
setvbuf
также следует использовать для обнаружения ошибок, поскольку
setbuf
не указывает на успех или неудачу.
Эта функция может использоваться только после того, как
stream
был ассоциирован с открытым файлом, но до любой другой операции (кроме неудачного вызова
setbuf
/
setvbuf
).
Распространённая ошибка — установка буфера stdin или stdout на массив, время жизни которого заканчивается до завершения программы:
Пример
setbuf
может использоваться для отключения буферизации потоков, требующих немедленного вывода.
Вывод:
ab
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.21.5.5 Функция setbuf (стр: 225)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.21.5.5 Функция setbuf (стр. 307-308)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.19.5.5 Функция setbuf (стр: 273)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.9.5.5 Функция setbuf
Смотрите также
|
устанавливает буфер и его размер для файлового потока
(функция) |
|
|
C++ documentation
для
setbuf
|
|