This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: Status of insque/remque
- From: "Ryan S. Arnold" <ryan dot arnold at gmail dot com>
- To: Bryan Evenson <bevenson at melinkcorp dot com>
- Cc: "libc-help at sourceware dot org" <libc-help at sourceware dot org>
- Date: Thu, 12 Apr 2012 09:41:42 -0500
- Subject: Re: Status of insque/remque
- References: <91586D499ADFD74FBCFB8425266A5DE401249A158C30@pluto.melinkcorp.local>
On Thu, Apr 12, 2012 at 7:59 AM, Bryan Evenson <bevenson@melinkcorp.com> wrote:
> I am writing a userspace application for an Angstrom Linux distribution (embedded Linux based on kernel 2.6.39) and I need some linked lists. ÂI don't need doubly linked list; simple singly linked list with insert, remove and forward searching are sufficient. ÂInstead of rolling my own, I'd prefer to use one that is already in existence.
>
> I am using glibc 2.12.2 and I see the insque/remque functions under search.h on my system. ÂBefore I start using insque/remque, I wanted to verify that there isn't a better linked list interface hiding somewhere in glibc or that there weren't plans to discontinue this interface in the near future. ÂIf I want a linked list, is this the interface to use?
The GLIBC provided versions of insque/remque are very simple. They
handle insertion and removal. Traversal/forward-searching is
something you'll have to do yourself (not terribly complicated). I
don't see any indication in the POSIX specification that these
interfaces are going anywhere so I suspect their implementation in
GLIBC is quite concrete.
You could also checkout out include/sys/queue.h for some linked list
helper macros which actually DO provide searching.
A more robust list interface is provided by Glib in the GSList mechanism:
http://developer.gnome.org/glib/2.32/glib-Singly-Linked-Lists.html
I suspect that this may not be available in your embedded environment.
Ryan