# 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:23+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 "STAILQ" 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 "" #. SIMPLEQ_CONCAT, #. SIMPLEQ_FOREACH_FROM, #. SIMPLEQ_FOREACH_FROM_SAFE, #. SIMPLEQ_FOREACH_SAFE, #. SIMPLEQ_LAST, #. SIMPLEQ_REMOVE_AFTER, #. SIMPLEQ_SWAP, #. STAILQ_FOREACH_FROM, #. STAILQ_FOREACH_FROM_SAFE, #. STAILQ_FOREACH_SAFE, #. STAILQ_LAST, #. STAILQ_REMOVE_AFTER, #. STAILQ_SWAP #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "SIMPLEQ_EMPTY, SIMPLEQ_ENTRY, SIMPLEQ_FIRST, SIMPLEQ_FOREACH, SIMPLEQ_HEAD, " "SIMPLEQ_HEAD_INITIALIZER, SIMPLEQ_INIT, SIMPLEQ_INSERT_AFTER, " "SIMPLEQ_INSERT_HEAD, SIMPLEQ_INSERT_TAIL, SIMPLEQ_NEXT, SIMPLEQ_REMOVE, " "SIMPLEQ_REMOVE_HEAD, STAILQ_CONCAT, STAILQ_EMPTY, STAILQ_ENTRY, " "STAILQ_FIRST, STAILQ_FOREACH, STAILQ_HEAD, STAILQ_HEAD_INITIALIZER, " "STAILQ_INIT, STAILQ_INSERT_AFTER, STAILQ_INSERT_HEAD, STAILQ_INSERT_TAIL, " "STAILQ_NEXT, STAILQ_REMOVE, STAILQ_REMOVE_HEAD, - implementation of a singly " "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<, STAILQ_ENTRY >IB<);>\n" "BIB<,>\n" "B< struct TYPE *>IB<, STAILQ_ENTRY >IB<);>\n" "BIB<, struct TYPE *>IB<,>\n" "B< struct TYPE *>IB<, STAILQ_ENTRY >IB<);>\n" msgstr "" #. .BI "struct TYPE *STAILQ_LAST(STAILQ_HEAD *" head ", struct TYPE *" elm , #. .BI " STAILQ_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<);>\n" "BIB<, STAILQ_ENTRY >IB<);>\n" msgstr "" #. #-#-#-#-# archlinux: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .P #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# debian-bookworm: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .PP #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# debian-unstable: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .P #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# fedora-40: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .P #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# fedora-rawhide: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .P #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# mageia-cauldron: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .P #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .PP #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ); #. .P #. .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ); #. .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head , #. .BI " STAILQ_ENTRY " NAME ", 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<, STAILQ_HEAD *>IB<, STAILQ_ENTRY >IB<);>\n" msgstr "" #. .BI "void STAILQ_REMOVE_AFTER(STAILQ_HEAD *" head ", struct TYPE *" elm , #. .BI " STAILQ_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<, struct TYPE *>IB<, TYPE,>\n" "B< STAILQ_ENTRY >IB<);>\n" "BIB<,>\n" "B< STAILQ_ENTRY >IB<);>\n" msgstr "" #. .BI "void STAILQ_SWAP(STAILQ_HEAD *" head1 ", STAILQ_HEAD *" head2 , #. .BI " STAILQ_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<, STAILQ_HEAD *>IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: Identical macros prefixed with SIMPLEQ instead of STAILQ exist; see " "NOTES." 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 singly 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 singly linked 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 tail queue and the other to the last element in the " "tail queue. The elements are singly linked for minimum space and pointer " "manipulation overhead at the expense of O(n) removal for arbitrary " "elements. New elements can be added to the tail queue after an existing " "element, at the head of the tail queue, or at the end of the tail 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 "STAILQ_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 tail queue. A pointer to " "the head of the tail 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 " "tail 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 tail 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 tail queue referenced by I." 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 tail queue." 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 " "tail 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 " "tail 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 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 "" #. #-#-#-#-# archlinux: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# debian-bookworm: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# debian-unstable: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# fedora-40: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# fedora-rawhide: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# mageia-cauldron: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_LAST () #. returns the last item on the tail queue. #. If the tail queue is empty the return value is NULL . #. 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 tail queue or NULL if the " "tail 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 next item on the tail queue, or NULL this item " "is the last." msgstr "" #. #-#-#-#-# archlinux: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .P #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-bookworm: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .PP #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .PP #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# debian-unstable: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .P #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-40: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .P #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# fedora-rawhide: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .P #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# mageia-cauldron: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .P #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .PP #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .PP #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_FOREACH_FROM () #. behaves identically to #. .BR STAILQ_FOREACH () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ referenced by #. .IR head . #. .P #. .BR STAILQ_FOREACH_SAFE () #. traverses the tail queue referenced by #. .I head #. in the forward direction, assigning each element #. in turn to #. .IR var . #. However, unlike #. .BR STAILQ_FOREACH () #. here it is permitted to both remove #. .I var #. as well as free it from within the loop safely without interfering with the #. traversal. #. .P #. .BR STAILQ_FOREACH_FROM_SAFE () #. behaves identically to #. .BR STAILQ_FOREACH_SAFE () #. when #. .I var #. is NULL, else it treats #. .I var #. as a previously found STAILQ element and begins the loop at #. .I var #. instead of the first element in the STAILQ 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 tail queue referenced by I in the " "forward 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 tail queue." msgstr "" #. #-#-#-#-# archlinux: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# debian-bookworm: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# debian-unstable: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# fedora-40: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# fedora-rawhide: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# mageia-cauldron: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_REMOVE_AFTER () #. removes the element after #. .I elm #. from the tail queue. #. Unlike #. .BR STAILQ_REMOVE (), #. this macro does not traverse the entire tail queue. #. 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 at the head of the tail queue. " "For optimum efficiency, elements being removed from the head of the tail " "queue should use this macro explicitly rather than the generic " "B() macro." 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: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# debian-bookworm: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# debian-unstable: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# fedora-40: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# fedora-rawhide: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# mageia-cauldron: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .PP #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: stailq.3.pot (PACKAGE VERSION) #-#-#-#-# #. .P #. .BR STAILQ_SWAP () #. swaps the contents of #. .I head1 #. and #. .IR head2 . #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() concatenates the tail 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(), and B() return a pointer to the first 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-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Some BSDs provide SIMPLEQ instead of STAILQ. They are identical, but for " "historical reasons they were named differently on different BSDs. STAILQ " "originated on FreeBSD, and SIMPLEQ originated on NetBSD. For compatibility " "reasons, some systems provide both sets of macros. glibc provides both " "STAILQ and SIMPLEQ, which are identical except for a missing SIMPLEQ " "equivalent to B()." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() doesn't allow I to be removed or freed within the " "loop, as it would interfere with the traversal. B(), " "which is present on the BSDs but is not present in glibc, fixes 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 "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-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" " STAILQ_ENTRY(entry) entries; /* Singly linked tail queue */\n" "};\n" "\\&\n" "STAILQ_HEAD(stailhead, entry);\n" "\\&\n" "int\n" "main(void)\n" "{\n" " struct entry *n1, *n2, *n3, *np;\n" " struct stailhead head; /* Singly linked tail queue\n" " head */\n" "\\&\n" " STAILQ_INIT(&head); /* Initialize the queue */\n" "\\&\n" " n1 = malloc(sizeof(struct entry)); /* Insert at the head */\n" " STAILQ_INSERT_HEAD(&head, n1, entries);\n" "\\&\n" " n1 = malloc(sizeof(struct entry)); /* Insert at the tail */\n" " STAILQ_INSERT_TAIL(&head, n1, entries);\n" "\\&\n" " n2 = malloc(sizeof(struct entry)); /* Insert after */\n" " STAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" "\\&\n" " STAILQ_REMOVE(&head, n2, entry, entries); /* Deletion */\n" " free(n2);\n" "\\&\n" " n3 = STAILQ_FIRST(&head);\n" " STAILQ_REMOVE_HEAD(&head, entries); /* Deletion from the head */\n" " free(n3);\n" "\\&\n" " n1 = STAILQ_FIRST(&head);\n" " n1-Edata = 0;\n" " for (unsigned int i = 1; i E 5; i++) {\n" " n1 = malloc(sizeof(struct entry));\n" " STAILQ_INSERT_HEAD(&head, n1, entries);\n" " n1-Edata = i;\n" " }\n" " /* Forward traversal */\n" " STAILQ_FOREACH(np, &head, entries)\n" " printf(\"%i\\en\", np-Edata);\n" " /* TailQ deletion */\n" " n1 = STAILQ_FIRST(&head);\n" " while (n1 != NULL) {\n" " n2 = STAILQ_NEXT(n1, entries);\n" " free(n1);\n" " n1 = n2;\n" " }\n" " STAILQ_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 "2023-02-05" 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 (STAILQ " "macros first appeared in 4.4BSD)." msgstr "" #. type: SH #: debian-bookworm #, no-wrap msgid "NOTES" 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" " STAILQ_ENTRY(entry) entries; /* Singly linked tail queue */\n" "};\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "STAILQ_HEAD(stailhead, 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 stailhead head; /* Singly linked tail queue\n" " head */\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " STAILQ_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" " STAILQ_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" " STAILQ_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" " STAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " STAILQ_REMOVE(&head, n2, entry, entries); /* Deletion */\n" " free(n2);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n3 = STAILQ_FIRST(&head);\n" " STAILQ_REMOVE_HEAD(&head, entries); /* Deletion from the head */\n" " free(n3);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " n1 = STAILQ_FIRST(&head);\n" " n1-Edata = 0;\n" " for (unsigned int i = 1; i E 5; i++) {\n" " n1 = malloc(sizeof(struct entry));\n" " STAILQ_INSERT_HEAD(&head, n1, entries);\n" " n1-Edata = i;\n" " }\n" " /* Forward traversal */\n" " STAILQ_FOREACH(np, &head, entries)\n" " printf(\"%i\\en\", np-Edata);\n" " /* TailQ deletion */\n" " n1 = STAILQ_FIRST(&head);\n" " while (n1 != NULL) {\n" " n2 = STAILQ_NEXT(n1, entries);\n" " free(n1);\n" " n1 = n2;\n" " }\n" " STAILQ_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 ""