On Sat, 27 Jul 2002, Rafael Kitover wrote:
> In files/file.c, line 1351: > > HFILE16 WINAPI _lclose16( HFILE16 hFile ) > { > if (hFile < 5) > { > FIXME("stdio handle closed, need proper conversion\n" ); > SetLastError( ERROR_INVALID_HANDLE ); > return HFILE_ERROR16; > } > .... > > > What does this mean? Taking it out doesn't seem to hurt anything. I > understand from this block: > > static void FILE_InitProcessDosHandles( void ) > { > dos_handles[0] = GetStdHandle(STD_INPUT_HANDLE); > dos_handles[1] = GetStdHandle(STD_OUTPUT_HANDLE); > dos_handles[2] = GetStdHandle(STD_ERROR_HANDLE); > dos_handles[3] = GetStdHandle(STD_ERROR_HANDLE); > dos_handles[4] = GetStdHandle(STD_ERROR_HANDLE); > } > > why we don't want to close those handles probably. Actually I guess it could be fixed by making the dos_handles[x] *duplicates* of the standard win32 handles, i.e. DuplicateHandle(GetCurrentProcess(), GetStdHandle(...), ...). If then a dos app tries to close those standard handles, only the duplicate will be closed, not the win32 std handle itself. > But why would I see that message, do sloppy windows programs try to > close a range of handle numbers or something? Yeah, I've seen some apps do just that. But it could also be trying to close a stdin/out handle in preparation for doing redirection.