You might also want to check that the print is succeeding; one possibility would be a full disk or a quota error resulting in not writing the whole thing. Check the close, too; sometimes output errors are deferred to the close (when all the buffers are flushed).
Also check the size of the file to make sure it's what you expect. It's possible for certain control characters to sneak into a file and make it look different on the screen than what's actually on the disk (like ^H).
Hope this helps!