From: Wu Y. <ad...@ne...> - 2001-10-29 01:55:33
|
My test shows that the first time I run the program it will report _commit returns 0 with error: No error but the second time it will tell _commit returns -1 with error: Bad file descriptor The problem is in the test program itself: it created a read-only test file! This is copied from MSDN: -------------------------------------------------- _commit Flushes a file directly to disk. int _commit( int handle ); Routine Required Header Optional Headers Compatibility _commit <io.h> <errno.h> Win 95, Win NT For additional compatibility information, see Compatibility in the Introduction. Libraries LIBC.LIB Single thread static library, retail version LIBCMT.LIB Multithread static library, retail version MSVCRT.LIB Import library for MSVCRT.DLL, retail version Return Value _commit returns 0 if the file was successfully flushed to disk. A return value of -1 indicates an error, and errno is set to EBADF, indicating an invalid file-handle parameter. Parameter handle Handle referring to open file Remarks The _commit function forces the operating system to write the file associated with handle to disk. This call ensures that the specified file is flushed immediately, not at the operating system's discretion. -------------------------------------------------- My only little problem is that I can hardly see the file size at 0. Windows 2000 seems to flush the file automatically. Best regards, Wu Yongwei |