Maybe I'm crazy, but doesn't this reliably get the length of an open file in C? I used it in an emulator once upon a time ... x = tell( handle ); file_length = lseek( handle, 0, SEEK_END ); lseek( handle, x, SEEK_SET ); ... hmm, yes, feel free to enlighten me on the fine distinctions between files and streams here... I suspect I'm bumping up against it. fseek...?... [wanders off into the distance, mumbling...]