[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: struct list_head
On Tue, May 07, 2002 at 08:39:00AM +0530, Sridhar N wrote:
> Hi,
> I need a to use a singly-linked list in my program, and since a
> doubly-linked list is provided in linux/list.h, i thought of using it. But i
> don't know how to use it. I have a structure of nodes that i want to link,
> say
>
> struct foo {
> int foo1;
> int foo2;
> char * foo3;
> struct list_head list;
> };
>
> How do I add a new node or initialize it. Seeing list.h didn't help me :-(
You can initialize using 2 ways:
LIST_HEAD_INIT() and LIST_HEAD()
The first one initialize the pointers of a struct list_head
and the second one will create a struct and then initialize.
To add or remove elements you can use list_add() and list_del().
Which element will have struct list_head inside, so if you
have the list_head pointer, you can use list_entry() to get
the pointer to element and to iterate over the list use
list_for_each().
Regards,
--
Flávio Bruno Leitner <flavio@conectiva.com.br>
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/