setbuf
컨트롤 스트림 버퍼링 됩니다.이 함수는 사용 되지 않습니다. 사용 하 여 setvbuf 대신 합니다.
void setbuf(
FILE *stream,
char *buffer
);
매개 변수
stream
포인터를 FILE 구조체입니다.buffer
사용자가 할당 된 버퍼입니다.
설명
setbuf 컨트롤에 대 한 버퍼링 함수 stream.stream 인수는 읽고 작성 되었거나 않는 열린 파일을 참조 해야 합니다.경우는 buffer 인수는 NULL, 스트림-buffered 수 없습니다.버퍼의 길이 문자 배열로 가리켜야 합니다, 경우 BUFSIZ, 어디 BUFSIZ STDIO에 정의 된 버퍼 크기입니다.H.사용자가 지정한 버퍼를 지정 된 스트림에 대 한 기본 시스템에서 할당 된 버퍼에 대 한 I/O 사용 버퍼링 합니다.stderr 스트림 기본적으로-buffered 아니지만 사용할 수 있습니다 setbuf 버퍼를 할당할 수 stderr.
setbuf대체 되었습니다 setvbuf, 새로운 코드에 대해 기본 루틴입니다.setbuf기존 코드와의 호환성을 위해 유지 됩니다.
요구 사항
루틴 |
필수 헤더 |
---|---|
setbuf |
<stdio.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_setbuf.c
// compile with: /W3
// This program first opens files named DATA1 and
// DATA2. Then it uses setbuf to give DATA1 a user-assigned
// buffer and to change DATA2 so that it has no buffer.
#include <stdio.h>
int main( void )
{
char buf[BUFSIZ];
FILE *stream1, *stream2;
fopen_s( &stream1, "data1", "a" );
fopen_s( &stream2, "data2", "w" );
if( (stream1 != NULL) && (stream2 != NULL) )
{
// "stream1" uses user-assigned buffer:
setbuf( stream1, buf ); // C4996
// Note: setbuf is deprecated; consider using setvbuf instead
printf( "stream1 set to user-defined buffer at: %Fp\n", buf );
// "stream2" is unbuffered
setbuf( stream2, NULL ); // C4996
printf( "stream2 buffering disabled\n" );
_fcloseall();
}
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.