This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]