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


void setbuf(  
   FILE *stream,  
   char *buffer   

매개 변수Parameters

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

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


setbuf 함수는 stream에 대한 버퍼링을 제어합니다.The setbuf function controls buffering for stream. stream 인수는 읽거나 쓰지 않은 열려 있는 파일을 참조해야 합니다.The stream argument must refer to an open file that has not been read or written. buffer 인수가 NULL인 경우 스트림은 버퍼링되지 않습니다.If the buffer argument is NULL, the stream is un-buffered. 그렇지 않은 경우 버퍼는 길이가 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 un-buffered 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. setbuf는 기존 코드와의 호환성을 위해 유지됩니다.setbuf is retained for compatibility with existing code.

요구 사항Requirements

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

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.For additional compatibility information, see Compatibility in the Introduction.


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

참고 항목See Also

스트림 I/O Stream I/O
fclose, _fcloseall fclose, _fcloseall
fflush fflush
fopen, _wfopen fopen, _wfopen