| 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