내보내기(0) 인쇄
모두 확장
and
div
eof
not
or
xor
확장 최소화
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

setvbuf

스트림 버퍼링 및 버퍼 크기를 제어합니다.

int setvbuf(
   FILE *stream,
   char *buffer,
   int mode,
   size_t size 
);

stream

FILE 구조체를 가리키는 포인터입니다.

buffer

사용자가 할당 한 버퍼입니다.

mode

버퍼링 모드입니다.

size

버퍼 크기(바이트)입니다. 허용 범위: 2 <= size <= INT_MAX (2147483647). 내부적으로 size에 제공되는 값은 가장 가까운 2의 배수로 내림됩니다.

성공하면 0를 반환합니다.

streamNULL이거나 mode 또는 size가 유효한 변경 이내에 있지 않은 경우, 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속 실행하는 것이 허용된 경우, 이 함수는 -1을 반환하고 errnoEINVAL로 설정합니다.

이러한 오류 코드 및 기타 오류 코드에 대한 내용은 _doserrno, errno, _sys_errlist 및 _sys_nerr을 참조하십시오.

setvbuf 함수는 프로그램이 버퍼링과 stream의 버퍼 크기를 제어하도록 허용합니다. stream는 반드시 열린 이래로 I/O 작업의 영향을 받지 않은 열린 파일을 참조해야 합니다. NULL 이 아닌 경우, 즉 setvbufsize/2 * 2 바이트 길이의 자동으로 할당된 버퍼를 사용하는 경우 buffer에 의해 가리켜지는 배열은 버퍼로 사용됩니다.

모드는 _IOFBF, _IOLBF 또는 _IONBF이어야 합니다. mode_IOFBF 또는 _IOLBF이면, size이 버퍼의 크기로 사용됩니다. mode_IONBF이면, 스트림은 버퍼가 해제되고 sizebuffer는 무시됩니다. mode의 값 및 그 의미는 다음과 같습니다.

_IOFBF

완전 버퍼링입니다. 즉, buffer이 버퍼로 사용되고 size가 버퍼의 크기로 사용됩니다. bufferNULL이면, size 바이트의 길이의 자동으로 할당된 된 버퍼가 사용됩니다.

_IOLBF

일부 시스템에서 이것은 선형 버퍼링을 제공합니다. 그러나, Win32에서 동작은 _IOFBF - 전체 버퍼링과 동일합니다.

_IONBF

buffer 또는 size에 관계없이 버퍼가 사용되지 않습니다.

루틴

필수 헤더

setvbuf

<stdio.h>

추가적인 호환성 정보에 대해서는, 도입부의 호환성을 참고하십시오.

라이브러리

모든 버전의 C 런타임 라이브러리입니다.

// crt_setvbuf.c
// This program opens two streams: stream1
// and stream2. It then uses setvbuf to give stream1 a
// user-defined buffer of 1024 bytes and stream2 no buffer.
//

#include <stdio.h>

int main( void )
{
   char buf[1024];
   FILE *stream1, *stream2;

   if( fopen_s( &stream1, "data1", "a" ) == 0 &&
       fopen_s( &stream2, "data2", "w" ) == 0 )
   {
      if( setvbuf( stream1, buf, _IOFBF, sizeof( buf ) ) != 0 )
         printf( "Incorrect type or size of buffer for stream1\n" );
      else
         printf( "'stream1' now has a buffer of 1024 bytes\n" );
      if( setvbuf( stream2, NULL, _IONBF, 0 ) != 0 )
         printf( "Incorrect type or size of buffer for stream2\n" );
      else
         printf( "'stream2' now has no buffer\n" );
      _fcloseall();
   }
}
'stream1' now has a buffer of 1024 bytes
'stream2' now has no buffer

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft