Pb mixing C & Fortran IO
ALLEON Guillaume
alleon@club-internet.fr
Sat May 8 23:28:00 GMT 1999
craig@jcb-sc.com wrote:
> > I encounter a problem when mixing C and Fortran IO in my code. Here are samples that
> > reproduce the problem :
>
> Don't do that. Any file or unit opened in one module cannot be safely
> accessed in another module (via the usual language facilities, anyway,
> which includes g77's libU77 routines, such as FGETC) *unless* that module
> is uses the same level of language facilities (where Fortran's WRITE and
> g77's FPUTC are on *two* different levels) *and* is compiled by the same
> compiler.
Do you mean C's FPUTC ?
>
I do understand but this is working on most of the systems I am using and Linux (+egcs)
(which is quite important for me) is the only one which crashes.
I was thinking that by the end the fortran library was in C so I was expecting the mix to
work at least for stdout...;-(
>
>
> And, yes, we need to document this. We explain it this way in the docs
> on each of the pertinent libU77 intrinsics:
>
> Stream I/O should not be mixed with normal record-oriented (formatted or
> unformatted) I/O on the same unit; the results are unpredictable.
>
> However, we should explain it also in writeups on inter-language and
> inter-compiler mixing. I'll work on this later.
>
> One approach I think some people use to avoid this whole problem is to
> code all I/O in C, and all number-crunching in Fortran, when they have
> to use both.
>
This is indeed a good idea but my code is running out-of-core and I would do the same
if I could get in C the same performance as for the fortran direct unformatted I/O... but
anyway if there is no other alternative.
>
> tq vm, (burley)
Thanks for your help
Guillaume
More information about the Gcc-bugs
mailing list