From: mheaney@on2.com (Matthew Heaney)
Subject: Re: [Spark] Arrays of Strings
Date: 9 Apr 2003 10:42:50 -0700
Date: 2003-04-09T17:42:51+00:00 [thread overview]
Message-ID: <1ec946d1.0304090942.3106b4e4@posting.google.com> (raw)
In-Reply-To: slrnb95ehu.ob.lutz@taranis.iks-jena.de
Lutz Donnerhacke <lutz@iks-jena.de> wrote in message news:<slrnb95ehu.ob.lutz@taranis.iks-jena.de>...
> In order to implement thin an execve binding, I wonder how to emulate the
> C-Type "char const * const x []". Any bright ideas?
Realize that an array in C "decays" to a pointer to the first element,
so x has the type
const char* const*
If you want to use the char* type in Interfaces.C.Strings, then your
problem reduces to:
type chars_ptr_access is access constant C.Strings.chars_ptr;
for chars_ptr_access'Storage_Size use 0;
pragma Convention (C, chars_ptr_access);
Now just declare an array of aliased chars_ptr, e.g.
type chars_ptr_array is (Natural range <>) of aliased chars_ptr;
pragma Convention (C, chars_ptr_array);
argv_array : constant chars_ptr_array := ...;
argv_ptr : constant chars_ptr_access := argv_array (0)'Access;
execv(filename, argv_ptr);
Interestingly, the chars_ptr_array declared in RM95 B.3.1 (6) does not
declare its component subtype as aliased, nor is the array marked as
begin C-compatible. This seems wrong to me, which is why I declared
the chars_ptr_array type myself, as above.
next prev parent reply other threads:[~2003-04-09 17:42 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-08 12:02 [Spark] Arrays of Strings Lutz Donnerhacke
2003-04-08 18:08 ` Martin Krischik
2003-04-09 9:23 ` Lutz Donnerhacke
2003-04-09 12:38 ` Hyman Rosen
2003-04-09 12:47 ` Vinzent Hoefler
2003-04-09 14:27 ` Hyman Rosen
2003-04-09 15:13 ` Vinzent Hoefler
2003-04-09 17:21 ` Hyman Rosen
2003-04-09 18:41 ` Vinzent Hoefler
2003-04-09 21:04 ` Randy Brukardt
2003-04-10 23:21 ` John R. Strohm
2003-04-11 12:19 ` Hyman Rosen
2003-04-11 13:14 ` John R. Strohm
2003-04-09 7:50 ` Eric G. Miller
2003-04-09 8:10 ` Lutz Donnerhacke
2003-04-09 18:23 ` Matthew Heaney
2003-04-09 17:42 ` Matthew Heaney [this message]
2003-04-09 21:06 ` Randy Brukardt
2003-04-10 8:23 ` Lutz Donnerhacke
2003-04-10 14:09 ` Matthew Heaney
2003-04-10 14:48 ` Hyman Rosen
2003-04-11 6:20 ` Chad R. Meiners
2003-04-11 12:31 ` Hyman Rosen
2003-04-11 18:27 ` Chad R. Meiners
2003-04-11 7:35 ` Phil Thornley
2003-04-11 12:05 ` Marin David Condic
2003-04-11 13:19 ` John R. Strohm
2003-04-12 23:09 ` Robert A Duff
2003-04-11 18:47 ` Chad R. Meiners
2003-04-12 23:51 ` Robert A Duff
2003-04-13 5:47 ` Hyman Rosen
2003-04-14 8:05 ` Lutz Donnerhacke
2003-04-10 15:02 ` Lutz Donnerhacke
2003-04-10 15:50 ` Hyman Rosen
2003-04-10 18:32 ` Randy Brukardt
2003-04-11 6:28 ` Chad R. Meiners
2003-04-11 8:11 ` Lutz Donnerhacke
2003-04-11 12:32 ` Rod Chapman
2003-04-11 14:50 ` Peter Amey
2003-04-11 18:41 ` Matthew Heaney
2003-04-11 21:25 ` Chad R. Meiners
2003-04-12 10:08 ` Peter Amey
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox