Re: Variable function arguments and the stack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Robert Kiesling writes:
 > > 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.

I'm a bit mystified by this comment.  All arguments are passed by
value, and are destroyed after the call.  What does libffi do that it
should not do?

Andrew.

-- 
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux