This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Variable function arguments and the stack
- From: Robert Kiesling <kiesling at earthlink dot net>
- To: gcc-help at gcc dot gnu dot org
- Date: Sun, 9 Dec 2007 09:29:47 -0500 (EST)
- Subject: Re: Variable function arguments and the stack
> David Daney wrote:
> > Robert Kiesling wrote:
> > > I trying to write a function that calls libc functions with
> > > variable arguments - for example, scanf. I would like to do
> > > this by pushing the arguments onto the stack and then calling
> > > the function, something like this. (This code is for an x86
> > > machine.)
> > >
> > > static long long int scalar_args[512];
> > > static char *ptr_args[512][BUFSIZE];
> >
> > Use libffi which ships with GCC. Doing things like this is what it was
> > designed for.
Libffi clobbers either the arguments or the stream argument (the
first argument before the format string in functions like fprintf
or sprintf). It should make a distinction whether the args or
the stream are writeable or readable, and that, of course is the
idea.
Regards,
Robert
--
Ctalk Home Page: http://www.ctalklang.org/