full buffer - setvbuf 관련 질문입니다.
글쓴이: 익명 사용자 / 작성시간: 월, 2002/10/21 - 8:22오전
#include
FILE *fp;
int main( int argc , char *argv[] )
{
char buf[3];
char *p = "hello\n";
int i;
/* 버퍼 크기 3인 buf를 내부버퍼로 지정 */
setvbuf( stdout , buf , _IOFBF , sizeof buf );
for ( i = 0 ; p[i] ; i++ )
{
printf( "%c" , p[i] );
sleep( 1 );
}
return 0;
}
~
실행하면 buf 사이즈가 3이므로
3초가 지나서 버퍼가 차면
"hel"
이 찍히고,
다시 3초가 지나면
나머지가 찍히면서 종료해야할것같은데요.
그냥 6초있다가 찍히는 이유는 무얼까요?
Forums:
Re: full buffer - setvbuf 관련 질문입니다.
님이 올린 소스로 저는 테스트 해보니까
잘 동작합니다..
6바이트에서 찍힌것은... hello\n에서 \n을 만나서 찍은거
같은데,, setvbuf가 제대로 설정이 안된거 아닐까요
댓글 달기