home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / lang / c / 19374 < prev    next >
Encoding:
Internet Message Format  |  1993-01-07  |  2.3 KB

  1. Xref: sparky comp.lang.c:19374 comp.os.vms:20520
  2. Newsgroups: local.unix.help,comp.lang.c,comp.os.vms
  3. Path: sparky!uunet!eco.twg.com!eco.twg.com!larry
  4. From: larry@eco.twg.com (Lawrence B. Henry III)
  5. Subject: Re: Using C to read Fortran Files
  6. Message-ID: <1993Jan7.171849.17042@eco.twg.com>
  7. Lines: 50
  8. Sender: larry@vishnu.eco.twg.com (Lawrence B. Henry III)
  9. Nntp-Posting-Host: eco.twg.com
  10. Reply-To: larry@eco.twg.com
  11. Organization: The Wollongong Group (East Coast Operations)
  12. References: <C0Fyo3.70D@ccu.umanitoba.ca> <C0G1rw.81L@ccu.umanitoba.ca> <C0GHCC.Cwp@ccu.umanitoba.ca> <1993Jan7.030702.4174@dbased.nuo.dec.com>
  13. Date: Thu, 7 Jan 93 17:18:49 GMT
  14. Lines: 50
  15.  
  16.  
  17. In article <1993Jan7.030702.4174@dbased.nuo.dec.com>, lionel@quark.enet.dec.com (Steve Lionel) writes:
  18. |>
  19. |>In article <C0GHCC.Cwp@ccu.umanitoba.ca>, kaarts@ccu.umanitoba.ca 
  20. |>(Kenneth John Aarts) writes...
  21. |>> 
  22. |>>>I have a fortran program that does essentially
  23. |>> 
  24. |>>>    open(unit=1,"test",status='new')
  25. |>>>    write(1,10) 'cArt'
  26. |>>>10    format(a4)
  27. |>>>    end
  28. |>> 
  29. |>>>and then a C program that reads it:
  30. |>> 
  31. |>>>    int d1,d2,d3,d4,d5;
  32. |>>>    FILE *fp;
  33. |>>>    fp=fopen("test","r");
  34. |>>>    fscanf(fp,"%c%c%c%c%c",&d1,&d2,&d3,&d4,&d5);
  35. |>>>    printf("%d %d %d %d %d\n",d1,d2,d3,d4,d5);
  36. |>> 
  37. |>>>The output of the C program is:
  38. |>> 
  39. |>>>  10  65  114  116   13
  40. |>> 
  41. |>>>  LF  A    r   t    CR
  42. |>> 
  43. |>>>However, a fortran program reading the test program does see cArt.
  44. |>> 
  45. |>
  46. |>It is the VAX C Run-Time Library which is doing this to you; it "interprets"
  47. |>the FORTRAN carriage control, turning the leading "c" into an LF, as that's
  48. |>what would happen if you printed the line on a terminal or printer.  WHY
  49. |>it does this I don't know, nor do I know how to stop it, but I thought
  50. |>that at the least you should know where the problem is located.  
  51. |>
  52. |>All I can suggest is that, if possible, open the file from FORTRAN
  53. |>specifying CARRIAGECONTROL='LIST'.  I'll see what I can dig up about
  54. |>solutions from the VAX C end.
  55.  
  56. Try changing the way you open the file to something like:
  57.  
  58. i = open("test", O_RDONLY, "rat=ftn");
  59. fp = fdopen(i, "r");
  60.  
  61. not sure if this solves your problem.. but checking the VAX C documentation
  62. it seem to imply it will.. The "rat=ftn" tells the open call that the record
  63. attributes of the file contain FORTRAN print control.
  64.  
  65. -Larry.
  66.