Deutsch English Français Italiano |
<vl6mjm$3f5mv$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: "Steven G. Kargl" <sgk@REMOVEtroutmask.apl.washington.edu> Newsgroups: comp.lang.fortran Subject: Re: how do you send a fortran character string from GCC to GFortran ? Date: Thu, 2 Jan 2025 18:40:54 -0000 (UTC) Organization: A noiseless patient Spider Lines: 42 Message-ID: <vl6mjm$3f5mv$1@dont-email.me> References: <vl5ima$38li7$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Thu, 02 Jan 2025 19:40:55 +0100 (CET) Injection-Info: dont-email.me; posting-host="1a073e7261bd438a48741e890d6ebe3e"; logging-data="3643103"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+3MkJGZKxAvezethBftUvL" User-Agent: Pan/0.145 (Duplicitous mercenary valetism; d7e168a git.gnome.org/pan2) Cancel-Lock: sha1:b+0M6q4dMde8S+Y5UdovXg0FOIo= Bytes: 2048 On Thu, 02 Jan 2025 02:27:54 -0600, Lynn McGuire wrote: > How do you send a fortran character string from GCC to GFortran ? > > I cannot get this to link. I can do the reverse, send a fortran > character string from Gfortran to GCC. > > I do have the additional complication that I do not know the length of > the fortran character string being sent from GCC to Gfortran at compile > time, only run time. So that is a character*(*) string. > > I am not using the ISO C binding. As Thomas as indicated, ISO C binding was introduced into the Fortran standard to address your needs. But, if you want to go old school with gcc/gfortran, then % cat aa.c #include <string.h> void string_(char *s, int *slen) { strncpy(s, "abc", *slen); } % cat bb.f90 program foo external :: string character(len=10) str call string(str, len(str)) print *, '>>' // str //'<<' end program foo % ~/work/bin/gcc -c aa.c % gfcx -o z bb.f90 aa.o % ./z >>abc<< -- steve