Programming

[C] Input stream에 대한 fflush() 호출이 가능한가?

[ CnUnix ] in KIDS
글 쓴 이(By): vness (구리)
날 짜 (Date): 2000년 12월 6일 수요일 오전 10시 36분 29초
제 목(Title): [질문]fflush(stdin)..

C FAQ에 보면.. fflush()는 output stream에 대해서만 적용이 된다고 합니다. 제가 알고 있기로는 input stream이든, output stream이든 다 적용되는 걸루 알고 있었거든요. 또 실제로 사람들도 fflush(stdin)이라는 구문을 많이 사용하기도 하고요.

fflush()가 output stream에 대해서만 적용된다라고 언급되어 있는 reference가 있는 건가요?

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 12월 6일 수요일 오전 10시 53분 30초
제 목(Title): Re: [질문]fflush(stdin)..

fflush가 istream에도 된다는 이야기는 처음 들어봤지만, Solaris 매뉴얼에는 output stream이나 update stream에 사용한다고(만) 나와 있습니다.

DESCRIPTION
If stream points to an output stream or an update stream in
which the most recent operation was not input, fflush()
causes any unwritten data for that stream to be written to
the file, and the st_ctime and st_mtime fields of the under-
lying file are marked for update.

[ CnUnix ] in KIDS
글 쓴 이(By): asiawide (재민이)
날 짜 (Date): 2000년 12월 6일 수요일 오전 10시 54분 53초
제 목(Title): Re: [질문]fflush(stdin)..

FAQ 에 보면 시스템에 따라 다르다 고 되어 있지 않나요?

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 12월 6일 수요일 오후 01시 37분 30초
제 목(Title): Re: [질문]fflush(stdin)..

찾아보니까, fflush를 input stream에 사용하는 것은 ANSI C에서는 금지하는 사항인데, printf와 scanf를 사용하는 곳에서 더러 사용하는 경우가 있다고 합니다.

fflush(stdin)하게 되면 “input buffer에 들어 있는 내용에 별 관심이 없으니까 이제 다 지워버려라”라는 뜻이랍니다.

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 12월 7일 목요일 오후 03시 51분 51초
제 목(Title): Re: [질문]fflush(stdin)..

어제 찾아본 걸 까먹어서 오늘 다시 찾아보느라 좀 헤맸습니다.

http://www.magi.com/~anderson/cpitfall/pit17.html
http://www.eskimo.com/~scs/C-faq/q12.26.html
http://web.onetelnet.ch/~twolf/tw/c/getting_input.html#type_ahead

답글 남기기