NAME

     insque, remque - insert/remove an item from a queue


SYNOPSIS

     #include <stdlib.h>

     void insque(struct qelem *elem, struct qelem *prev));
     void remque(struct qelem *elem));


DESCRIPTION

     insque() and remque() are functions for manipulating  queues
     made from doubly-linked lists.  Each element in this list is
     of type struct qelem

     The qelem structure is defined as

          struct qelem {
              struct    qelem *q_forw;
              struct    qelem *q_back;
              char      q_data[1];
          };

     insque() inserts the element pointed to by elem  immediately
     after  the  element  pointed  to  by prev, which must NOT be
     NULL.

     remque() removes the element pointed to  by  elem  from  the
     doubly-linked list.


CONFORMING TO

     SVR4


BUGS

     The q_data field is sometimes defined to be type char *, and
     under solaris 2.x, it doesn't appear to exist at all.

     The location of the prototypes for  these  functions  differ
     among  several versions of UNIX.  Some systems place them in
     <search.h>, others in  <string.h>.   Linux  places  them  in
     <stdlib.h> since that seems to make the most sense.

     Some versions of UNIX (like HP-UX  10.x)  do  not  define  a
     struct  qelem  but rather have the arguments to insque() and
     remque() be of type void *.