<DigitalMan> bad <DigitalMan> and referencing file.length could very well reset the ferror() value, so sample and save the file.error value immediately after error