summaryrefslogtreecommitdiffstats
path: root/man3/slist.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/slist.3')
-rw-r--r--man3/slist.324
1 files changed, 12 insertions, 12 deletions
diff --git a/man3/slist.3 b/man3/slist.3
index 2aa31865c..bbfc8de18 100644
--- a/man3/slist.3
+++ b/man3/slist.3
@@ -263,53 +263,53 @@ without interfering with the traversal.
#include <stdio.h>
#include <stdlib.h>
#include <sys/queue.h>
-
+\&
struct entry {
int data;
SLIST_ENTRY(entry) entries; /* Singly linked list */
};
-
+\&
SLIST_HEAD(slisthead, entry);
-
+\&
int
main(void)
{
struct entry *n1, *n2, *n3, *np;
struct slisthead head; /* Singly linked list
head */
-
+\&
SLIST_INIT(&head); /* Initialize the queue */
-
+\&
n1 = malloc(sizeof(struct entry)); /* Insert at the head */
SLIST_INSERT_HEAD(&head, n1, entries);
-
+\&
n2 = malloc(sizeof(struct entry)); /* Insert after */
SLIST_INSERT_AFTER(n1, n2, entries);
-
+\&
SLIST_REMOVE(&head, n2, entry, entries);/* Deletion */
free(n2);
-
+\&
n3 = SLIST_FIRST(&head);
SLIST_REMOVE_HEAD(&head, entries); /* Deletion from the head */
free(n3);
-
+\&
for (unsigned int i = 0; i < 5; i++) {
n1 = malloc(sizeof(struct entry));
SLIST_INSERT_HEAD(&head, n1, entries);
n1\->data = i;
}
-
+\&
/* Forward traversal */
SLIST_FOREACH(np, &head, entries)
printf("%i\en", np\->data);
-
+\&
while (!SLIST_EMPTY(&head)) { /* List deletion */
n1 = SLIST_FIRST(&head);
SLIST_REMOVE_HEAD(&head, entries);
free(n1);
}
SLIST_INIT(&head);
-
+\&
exit(EXIT_SUCCESS);
}
.EE