> When fwrite is called on a closed file, it is supposed to return zero as > the number of bytes written. I don't know where you got this idea. After you call fclose, any other use of that FILE * is undefined behavior.