home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / c / 13223 < prev    next >
Encoding:
Text File  |  1992-09-04  |  1.5 KB  |  38 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!taumet!steve
  3. From: steve@taumet.com (Steve Clamage)
  4. Subject: Re: MS-C fread bug
  5. Message-ID: <1992Sep4.151759.16735@taumet.com>
  6. Organization: TauMetric Corporation
  7. References: <1992Sep3.141100.28778@wuecl.wustl.edu> <a_rubin.715550662@dn66>
  8. Date: Fri, 4 Sep 1992 15:17:59 GMT
  9. Lines: 27
  10.  
  11. a_rubin@dsg4.dse.beckman.com (Arthur Rubin) writes:
  12.  
  13. >In <1992Sep3.141100.28778@wuecl.wustl.edu> drm4005@wuee1.wustl.edu (David Russell Maffitt) writes:
  14.  
  15. >>Here is a simple piece of code that does not work under MS-C versions ...
  16. >>What is magic about the value 70.689651???  ...
  17.  
  18. >MAGIC has a byte which has the value 0x1A, which is processed as an end of
  19. >file by MS-DOS.  If you open fp2 in mode "rb" instead of "r", there is no
  20. >problem.
  21.  
  22. This deserves a bit of explanation.
  23.  
  24. When you open a file with the "r" or "w" mode, you tell the C runtime
  25. library, and thus the file system, that you are reading or writing
  26. a text file.  If you then read or write binary data, you may well
  27. get bizarre results.  Maffitt found one such.  There are other things
  28. which can happen, such as mapping to and from what appear to be CR-LF
  29. sequences but which are intended to be just binary bytes of data.
  30.  
  31. When you input and ouput binary data, you need to tell the runtime
  32. system that you want a binary rather than a text file.  The "rb"
  33. and "wb" in the mode parameter to the "fopen" function do just that.
  34. -- 
  35.  
  36. Steve Clamage, TauMetric Corp, steve@taumet.com
  37. Vice Chair, ANSI C++ Committee, X3J16
  38.