# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 06:30+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "TAILQ" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. TAILQ_FOREACH_FROM, #. TAILQ_FOREACH_FROM_SAFE, #. TAILQ_FOREACH_REVERSE_FROM, #. TAILQ_FOREACH_REVERSE_FROM_SAFE, #. TAILQ_FOREACH_REVERSE_SAFE, #. TAILQ_FOREACH_SAFE, #. TAILQ_SWAP #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "TAILQ_CONCAT, TAILQ_EMPTY, TAILQ_ENTRY, TAILQ_FIRST, TAILQ_FOREACH, " "TAILQ_FOREACH_REVERSE, TAILQ_HEAD, TAILQ_HEAD_INITIALIZER, TAILQ_INIT, " "TAILQ_INSERT_AFTER, TAILQ_INSERT_BEFORE, TAILQ_INSERT_HEAD, " "TAILQ_INSERT_TAIL, TAILQ_LAST, TAILQ_NEXT, TAILQ_PREV, TAILQ_REMOVE - " "implementation of a doubly linked tail queue" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<#include Esys/queue.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B\n" "BIB<);>\n" "BIB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<,>\n" "B< struct TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<,>\n" "B< struct TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<,>\n" "B< struct TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, struct TYPE *>IB<,>\n" "B< struct TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<);>\n" "BIB<, HEADNAME);>\n" "BIB<, HEADNAME, TAILQ_ENTRY >IB<);>\n" "BIB<, TAILQ_ENTRY >IB<);>\n" msgstr "" #. #-#-#-#-# archlinux: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .P #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# debian-bookworm: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .PP #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# debian-unstable: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .P #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# fedora-40: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .P #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# fedora-rawhide: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .P #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# mageia-cauldron: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .P #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .PP #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME ); #. .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME," #. .BI " TAILQ_ENTRY " NAME ); #. .P #. .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head , #. .BI " HEADNAME, TAILQ_ENTRY " NAME , #. .BI " struct TYPE *" temp_var ); #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, TAILQ_HEAD *>IB<,>\n" "B< TAILQ_ENTRY >IB<);>\n" "BIB<, TAILQ_HEAD *>IB<, HEADNAME,>\n" "B< TAILQ_ENTRY >IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, struct TYPE *>IB<,>\n" "B< TAILQ_ENTRY >IB<);>\n" msgstr "" #. .BI "void TAILQ_SWAP(TAILQ_HEAD *" head1 ", TAILQ_HEAD *" head2 ", TYPE," #. .BI " TAILQ_ENTRY " NAME ); #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, TAILQ_HEAD *>IB<,>\n" "B< TAILQ_ENTRY >IB<);>\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "These macros define and operate on doubly linked tail queues." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the macro definitions, I is the name of a user defined structure, " "that must contain a field of type I, named I. The " "argument I is the name of a user defined structure that must be " "declared using the macro B()." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Creation" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A tail queue is headed by a structure defined by the B() " "macro. This structure contains a pair of pointers, one to the first element " "in the queue and the other to the last element in the queue. The elements " "are doubly linked so that an arbitrary element can be removed without " "traversing the queue. New elements can be added to the queue after an " "existing element, before an existing element, at the head of the queue, or " "at the end of the queue. A I structure is declared as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "where I is the structure to be defined, and I " "is the type of the elements to be linked into the queue. A pointer to the " "head of the queue can later be declared as:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "struct HEADNAME *headp;\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "(The names I and I are user selectable.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() declares a structure that connects the elements in the " "queue." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() evaluates to an initializer for the queue " "I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() initializes the queue referenced by" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() evaluates to true if there are no items on the queue. " "I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Insertion" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() inserts the new element I at the head of the " "queue." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() inserts the new element I at the end of the " "queue." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() inserts the new element I before the element " "I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() inserts the new element I after the element " "I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Traversal" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns the first item on the queue, or NULL if the queue " "is empty." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns the last item on the queue. If the queue is empty " "the return value is NULL." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns the previous item on the queue, or NULL if this " "item is the first." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns the next item on the queue, or NULL if this item is " "the last." msgstr "" #. #-#-#-#-# archlinux: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-bookworm: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-unstable: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-40: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-rawhide: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# mageia-cauldron: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_FROM () #. behaves identically to #. .BR TAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() traverses the queue referenced by I in the forward " "direction, assigning each element in turn to I. I is set to NULL " "if the loop completes normally, or if there were no elements." msgstr "" #. #-#-#-#-# archlinux: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-bookworm: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .PP #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .PP #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .PP #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-unstable: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-40: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-rawhide: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# mageia-cauldron: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .PP #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .PP #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .PP #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_SAFE () #. and #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. traverse the list referenced by #. .I head #. in the forward or reverse direction respectively, #. assigning each element in turn to #. .IR var . #. However, unlike their unsafe counterparts, #. .BR TAILQ_FOREACH () #. and #. .BR TAILQ_FOREACH_REVERSE () #. permit to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR TAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the loop at #. .I var #. instead of the first element in the TAILQ referenced by #. .IR head . #. .P #. .BR TAILQ_FOREACH_REVERSE_FROM_SAFE () #. behaves identically to #. .BR TAILQ_FOREACH_REVERSE_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found TAILQ element and begins the reverse loop at #. .I var #. instead of the last element in the TAILQ referenced by #. .IR head . #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() traverses the queue referenced by I in the " "reverse direction, assigning each element in turn to I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Removal" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B() removes the element I from the queue." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Other features" msgstr "" #. #-#-#-#-# archlinux: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .P #. type: Plain text #. #-#-#-#-# debian-bookworm: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .PP #. type: Plain text #. #-#-#-#-# debian-unstable: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .P #. type: Plain text #. #-#-#-#-# fedora-40: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .P #. type: Plain text #. #-#-#-#-# fedora-rawhide: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .P #. type: Plain text #. #-#-#-#-# mageia-cauldron: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .P #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .PP #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: tailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BR TAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. .P #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() concatenates the queue headed by I onto the end of " "the one headed by I removing all entries from the former." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns nonzero if the queue is empty, and zero if the " "queue contains at least one entry." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(), B(), B(), and B() " "return a pointer to the first, last, previous, or next I structure, " "respectively." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() returns an initializer that can be assigned to " "the queue I." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "BSD." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "4.4BSD." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "CAVEATS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() and B() don't allow I to be " "removed or freed within the loop, as it would interfere with the traversal. " "B() and B(), which are " "present on the BSDs but are not present in glibc, fix this limitation by " "allowing I to safely be removed from the list and freed from within the " "loop without interfering with the traversal." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/queue.hE\n" "\\&\n" "struct entry {\n" " int data;\n" " TAILQ_ENTRY(entry) entries; /* Tail queue */\n" "};\n" "\\&\n" "TAILQ_HEAD(tailhead, entry);\n" "\\&\n" "int\n" "main(void)\n" "{\n" " struct entry *n1, *n2, *n3, *np;\n" " struct tailhead head; /* Tail queue head */\n" " int i;\n" "\\&\n" " TAILQ_INIT(&head); /* Initialize the queue */\n" "\\&\n" " n1 = malloc(sizeof(struct entry)); /* Insert at the head */\n" " TAILQ_INSERT_HEAD(&head, n1, entries);\n" "\\&\n" " n1 = malloc(sizeof(struct entry)); /* Insert at the tail */\n" " TAILQ_INSERT_TAIL(&head, n1, entries);\n" "\\&\n" " n2 = malloc(sizeof(struct entry)); /* Insert after */\n" " TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" "\\&\n" " n3 = malloc(sizeof(struct entry)); /* Insert before */\n" " TAILQ_INSERT_BEFORE(n2, n3, entries);\n" "\\&\n" " TAILQ_REMOVE(&head, n2, entries); /* Deletion */\n" " free(n2);\n" " /* Forward traversal */\n" " i = 0;\n" " TAILQ_FOREACH(np, &head, entries)\n" " np-Edata = i++;\n" " /* Reverse traversal */\n" " TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)\n" " printf(\"%i\\en\", np-Edata);\n" " /* TailQ deletion */\n" " n1 = TAILQ_FIRST(&head);\n" " while (n1 != NULL) {\n" " n2 = TAILQ_NEXT(n1, entries);\n" " free(n1);\n" " n1 = n2;\n" " }\n" " TAILQ_INIT(&head);\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. SRC END #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(3), B(7)" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2022-10-30" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "Not in POSIX.1, POSIX.1-2001, or POSIX.1-2008. Present on the BSDs. (TAILQ " "functions first appeared in 4.4BSD)." msgstr "" #. type: SH #: debian-bookworm #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/queue.hE\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "struct entry {\n" " int data;\n" " TAILQ_ENTRY(entry) entries; /* Tail queue */\n" "};\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "TAILQ_HEAD(tailhead, entry);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct entry *n1, *n2, *n3, *np;\n" " struct tailhead head; /* Tail queue head */\n" " int i;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " TAILQ_INIT(&head); /* Initialize the queue */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n1 = malloc(sizeof(struct entry)); /* Insert at the head */\n" " TAILQ_INSERT_HEAD(&head, n1, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n1 = malloc(sizeof(struct entry)); /* Insert at the tail */\n" " TAILQ_INSERT_TAIL(&head, n1, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n2 = malloc(sizeof(struct entry)); /* Insert after */\n" " TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n3 = malloc(sizeof(struct entry)); /* Insert before */\n" " TAILQ_INSERT_BEFORE(n2, n3, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " TAILQ_REMOVE(&head, n2, entries); /* Deletion */\n" " free(n2);\n" " /* Forward traversal */\n" " i = 0;\n" " TAILQ_FOREACH(np, &head, entries)\n" " np-Edata = i++;\n" " /* Reverse traversal */\n" " TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)\n" " printf(\"%i\\en\", np-Edata);\n" " /* TailQ deletion */\n" " n1 = TAILQ_FIRST(&head);\n" " while (n1 != NULL) {\n" " n2 = TAILQ_NEXT(n1, entries);\n" " free(n1);\n" " n1 = n2;\n" " }\n" " TAILQ_INIT(&head);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""