setbuf
|
헤더 파일에 정의됨
<stdio.h>
|
||
|
void
setbuf
(
FILE
*
stream,
char
*
buffer
)
;
|
(C99 이전) | |
|
void
setbuf
(
FILE
*
restrict
stream,
char
*
restrict
buffer
)
;
|
(C99부터) | |
|
#define BUFSIZ /*unspecified*/
|
||
스트림 작업에 사용할 내부 버퍼를 설정합니다. 최소한
BUFSIZ
문자 길이 이상이어야 합니다.
만약
buffer
가 null이 아니라면, 다음 코드와 동일합니다:
setvbuf
(
stream, buffer,
_IOFBF
,
BUFSIZ
)
.
만약
buffer
가 null이면,
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 함수 (p: 225)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.21.5.5 setbuf 함수 (p: 307-308)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.19.5.5 setbuf 함수 (p: 273)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.9.5.5 setbuf 함수
참고 항목
|
파일 스트림에 대한 버퍼와 그 크기를 설정합니다
(함수) |
|
|
C++ documentation
for
setbuf
|
|