setbufsetbuf

스트림 버퍼링을 제어합니다.Controls stream buffering. 이 함수는 사용되지 않습니다. 대신 setvbuf를 사용하세요.This function is deprecated; use setvbuf instead.

구문Syntax

void setbuf(
   FILE *stream,
   char *buffer
);

매개 변수Parameters

스트림stream
FILE 구조체에 대한 포인터입니다.Pointer to FILE structure.

버퍼buffer
사용자가 할당한 버퍼입니다.User-allocated buffer.

설명Remarks

Setbuf 함수는 스트림에대 한 버퍼링을 제어 합니다.The setbuf function controls buffering for stream. Stream 인수는 읽거나 쓰지 않은 열려 있는 파일을 참조 해야 합니다.The stream argument must refer to an open file that hasn't been read or written. Buffer 인수가 NULL이면 스트림은 버퍼링 되지 않습니다.If the buffer argument is NULL, the stream is unbuffered. 그렇지 않은 경우 버퍼는 길이가 BUFSIZ인 문자 배열을 가리켜야 합니다. 여기서 BUFSIZ 은 stdio.h에 정의 된 버퍼 크기입니다. 넣기.If not, the buffer must point to a character array of length BUFSIZ, where BUFSIZ is the buffer size as defined in STDIO.H. 지정된 스트림에 대한 기본 시스템 할당 버퍼 대신 사용자 지정 버퍼가 I/O 버퍼링에 사용됩니다.The user-specified buffer, instead of the default system-allocated buffer for the given stream, is used for I/O buffering. Stderr 스트림은 기본적으로 버퍼링 되지 않지만 setbuf 를 사용 하 여 버퍼를 stderr에 할당할 수 있습니다.The stderr stream is unbuffered by default, but you can use setbuf to assign buffers to stderr.

setbuf 는 새 코드에 기본 설정 된 루틴 인 setvbuf로 대체 되었습니다.setbuf has been replaced by setvbuf, which is the preferred routine for new code. Setvbuf와 달리 setbuf 에는 오류를 보고 하는 방법이 없습니다.Unlike setvbuf, setbuf has no way of reporting errors. 또한 setvbuf 를 사용 하면 버퍼링 모드와 버퍼 크기를 모두 제어할 수 있습니다.setvbuf also lets you control both the buffering mode and the buffer size. setbuf 는 기존 코드와의 호환성을 위해 존재 합니다.setbuf exists for compatibility with existing code.

기본적으로이 함수의 전역 상태는 응용 프로그램으로 범위가 지정 됩니다.By default, this function's global state is scoped to the application. 이를 변경 하려면 CRT의 전역 상태를 참조 하세요.To change this, see Global state in the CRT.

요구 사항Requirements

루틴에서 반환된 값Routine 필수 헤더Required header
setbufsetbuf <stdio.h><stdio.h>

호환성에 대한 자세한 내용은 Compatibility을 참조하세요.For additional compatibility information, see Compatibility.

예제Example

// 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();
   }
}
stream1 set to user-defined buffer at: 0012FCDC
stream2 buffering disabled

참조See also

스트림 I/OStream I/O
fclose, _fcloseallfclose, _fcloseall
fflushfflush
fopen, _wfopenfopen, _wfopen
setvbufsetvbuf