Man Linux: Main Page and Category List

NAME

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

SYNOPSIS

       #include <search.h>

       void insque(void *elem, void *prev);

       void remque(void *elem);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       insque(), remque(): _SVID_SOURCE || _XOPEN_SOURCE >= 500

DESCRIPTION

       insque()  and  remque()  are  functions  for manipulating doubly-linked
       lists.  Each element in the list is a structure of which the first  two
       structure elements are a forward and a backward pointer.

       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

       POSIX.1-2001.

NOTES

       Traditionally  (e.g., SunOS, Linux libc 4 and libc 5), the arguments of
       these functions were of type struct qelem *, defined as:

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

       This is still what you  will  get  if  _GNU_SOURCE  is  defined  before
       including <search.h>.

       The  location  of  the  prototypes  for  these  functions differs among
       several versions of Unix.   The  above  is  the  POSIX  version.   Some
       systems  place  them in <string.h>.  Linux libc4 and libc 5 placed them
       in <stdlib.h>.

COLOPHON

       This page is part of release 3.24 of the Linux  man-pages  project.   A
       description  of  the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.

                                  2008-07-11