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.
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 *.