Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #16893

Re: avcall, callback, trampoline, vacall, etc

From Les Cargill <lcargill99@comcast.com>
Newsgroups comp.lang.c, comp.lang.c++, comp.unix.programmer, comp.lang.javascript, comp.lang.lisp
Subject Re: avcall, callback, trampoline, vacall, etc
Date 2012-10-26 07:27 -0500
Organization A noiseless patient Spider
Message-ID <k6dvjn$r9j$1@dont-email.me> (permalink)
References <dfa26195-ed53-41e7-afb6-6f59d556a154@3g2000yqn.googlegroups.com>

Cross-posted to 5 groups.

Show all headers | View raw


gnuist007@hotmail.com wrote:
> Dear Programming Gurus,
>
> These concepts are rather well talked about .. over the internet and
> usenet, however, I cant find any clear explanation.
>
> avcall, callback, trampoline, vacall, etc
>
> I looked in a book of C programming, ie k&r and also the rationale for
> C, an old copy and could not find any explanation.
>
> I know that javascript books talk a lot about callbacks and there is
> the style of programming involving writing callbacks and registering
> them. Unfortunately, in the age when I took my C class, there was no
> discussion along these lines.
>
> Can anyone give clear definition, example, benefits, variations,
> origin or citation to a paper where it originated and explained first,
> as well as some modern text that does the better than most job of
> illustrating it and its applications.
>

"Callbacks" are a method of storing pointers to functions
and exploiting them.

I'm answering from comp.lang.c so one thing I would start with is to
learn the concept of an ioctl(). It's one of the oldest ways to
do this sort of thing. Just google for "device driver programming in
linux" and follow some of the simpler examples. ioctl() is a pattern
that occurs quite frequently, in and out of kernel/driver
development.

After that, just do plain old callbacks in 'C' - declare...

//a typedef

typedef void (*cbtype)(char *);

// an array of them

cbtype cbtab[3];

// an initializer

void set_cb(cbtype a,int idx)
{
...
}

// and reference the callbacks

void thing(char *s)
{
...
}

...

   set_cb(thing,2);
   cbtab[2]("Calling Elvis");

--
Les Cargill

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

avcall, callback, trampoline, vacall, etc gnuist007@hotmail.com - 2012-10-25 12:24 -0700
  Re: avcall, callback, trampoline, vacall, etc James Kuyper <jameskuyper@verizon.net> - 2012-10-25 16:04 -0400
    Re: avcall, callback, trampoline, vacall, etc Gene Wirchenko <genew@ocis.net> - 2012-10-25 14:55 -0700
  Re: avcall, callback, trampoline, vacall, etc Paavo Helde <myfirstname@osa.pri.ee> - 2012-10-25 15:46 -0500
  Re: avcall, callback, trampoline, vacall, etc Cortez <relativeflux@hotmail.co.uk> - 2012-10-25 13:47 -0700
  Re: avcall, callback, trampoline, vacall, etc Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2012-10-25 20:18 -0600
    Re: avcall, callback, trampoline, vacall, etc gnuist007@hotmail.com - 2012-10-26 10:11 -0700
    Re: avcall, callback, trampoline, vacall, etc "Pascal J. Bourguignon" <pjb@informatimago.com> - 2012-10-28 18:56 +0100
    Re: avcall, callback, trampoline, vacall, etc Rivka Miller <rivkaumiller@gmail.com> - 2012-11-05 16:28 -0800
  Re: avcall, callback, trampoline, vacall, etc Les Cargill <lcargill99@comcast.com> - 2012-10-26 07:27 -0500
    Re: avcall, callback, trampoline, vacall, etc gnuist007@hotmail.com - 2012-10-26 10:16 -0700
      Re: avcall, callback, trampoline, vacall, etc Les Cargill <lcargill99@comcast.com> - 2012-10-26 12:42 -0500
      Re: avcall, callback, trampoline, vacall, etc James Kuyper <jameskuyper@verizon.net> - 2012-10-26 14:08 -0400

csiph-web