오래간만에 재미난 퀴즈.

Q. Win32 환경에서 모든 함수가 성공적으로 수행되었다고 가정할 경우, #END 시점에서 데이터가 실제로 disk 에 쓰여졌다고 기대할 수 있는 코드를 모두 선택하시오.

1.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
// #END

2.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
// #END

3.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fclose( fp );
// #END

4.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
fclose( fp );
// #END

5.
HANDLE hFile = CreateFile( "test", 0, FILE_SHARE_WRITE, 0, TRUNCATE_EXISTING, FILE_ATTRIBUTE_NORMAL );
DWORD sz = 0;
WriteFile( hFile, "data", 4, &sz, NULL );
CloseHandle( hFile );
// #END



계속보기

2006/12/15 19:32 2006/12/15 19:32

트랙백 주소 :: http://testors.net/tt/trackback/767

  1. 갑자기 예전에 읽은 글 내용을 잊어버린 것 같아...

    Tracked from What the hell is this?! 2007/01/15 17:05  삭제

    <P>트랙백 걸고 기억을 되살린다.</P> <P>&nbsp;</P> <P>'FILE' 을 사용하여 파일을 읽고 쓰는 경우, 물리적으로 disk에 저장되었다는 것을 확신하기 위해서는 반드시 FlushFileFromBuffers() 함수를 사용해야 한다.</P> <P>&nbsp;</P> <P>M$에서 제공하는 '표준이 아닌' 편법으로 fopen()을 호출할 때 'c' 플래그를 추가한 뒤 fflush()를 사용하면 저 함수가 자동으로 호출된다고 한..

  2. [펌] fflush 가 파일의 하드 디스크 기록 저장을 보장하지 않는다!

    Tracked from 귀차니스트! 2007/02/13 11:04  삭제

    <P>우허허 ...</P> <P>?장.</P> <P>당했다 ㅜㅜ</P>