diff options
Diffstat (limited to 'po/es/archive/man3/queue.3.po')
-rw-r--r-- | po/es/archive/man3/queue.3.po | 1870 |
1 files changed, 1870 insertions, 0 deletions
diff --git a/po/es/archive/man3/queue.3.po b/po/es/archive/man3/queue.3.po new file mode 100644 index 00000000..261ac726 --- /dev/null +++ b/po/es/archive/man3/queue.3.po @@ -0,0 +1,1870 @@ +# Spanish translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Miguel Pérez Ibars <mpi79470@alu.um.es>, 2004. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2023-08-27 17:15+0200\n" +"PO-Revision-Date: 2004-08-09 19:53+0200\n" +"Last-Translator: Miguel Pérez Ibars <mpi79470@alu.um.es>\n" +"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.1\n" + +#. type: Dd +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "February 2019" +msgid "February 7, 2015" +msgstr "Febrero 2019" + +#. type: Dt +#: opensuse-leap-15-6 +#, no-wrap +msgid "QUEUE 3" +msgstr "QUEUE 3" + +#. type: Sh +#: opensuse-leap-15-6 +#, no-wrap +msgid "NAME" +msgstr "NOMBRE" + +#. .Nm SLIST_FOREACH_FROM , +#. .Nm SLIST_FOREACH_SAFE , +#. .Nm SLIST_FOREACH_FROM_SAFE , +#. .Nm SLIST_REMOVE_AFTER , +#. .Nm SLIST_SWAP , +#. .Nm STAILQ_FOREACH_FROM , +#. .Nm STAILQ_FOREACH_SAFE , +#. .Nm STAILQ_FOREACH_FROM_SAFE , +#. .Nm STAILQ_LAST , +#. .Nm STAILQ_REMOVE_AFTER , +#. .Nm STAILQ_SWAP , +#. .Nm LIST_FOREACH_FROM , +#. .Nm LIST_FOREACH_SAFE , +#. .Nm LIST_FOREACH_FROM_SAFE , +#. .Nm LIST_PREV , +#. .Nm LIST_SWAP , +#. .Nm TAILQ_FOREACH_FROM , +#. .Nm TAILQ_FOREACH_SAFE , +#. .Nm TAILQ_FOREACH_FROM_SAFE , +#. .Nm TAILQ_FOREACH_REVERSE_FROM , +#. .Nm TAILQ_FOREACH_REVERSE_SAFE , +#. .Nm TAILQ_FOREACH_REVERSE_FROM_SAFE , +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"E<.Nm SLIST_EMPTY>, E<.Nm SLIST_ENTRY>, E<.Nm SLIST_FIRST>, E<.Nm " +"SLIST_FOREACH>, E<.Nm SLIST_HEAD>, E<.Nm SLIST_HEAD_INITIALIZER>, E<.Nm " +"SLIST_INIT>, E<.Nm SLIST_INSERT_AFTER>, E<.Nm SLIST_INSERT_HEAD>, E<.Nm " +"SLIST_NEXT>, E<.Nm SLIST_REMOVE_HEAD>, E<.Nm SLIST_REMOVE>, E<.Nm " +"STAILQ_CONCAT>, E<.Nm STAILQ_EMPTY>, E<.Nm STAILQ_ENTRY>, E<.Nm " +"STAILQ_FIRST>, E<.Nm STAILQ_FOREACH>, E<.Nm STAILQ_HEAD>, E<.Nm " +"STAILQ_HEAD_INITIALIZER>, E<.Nm STAILQ_INIT>, E<.Nm STAILQ_INSERT_AFTER>, E<." +"Nm STAILQ_INSERT_HEAD>, E<.Nm STAILQ_INSERT_TAIL>, E<.Nm STAILQ_NEXT>, E<.Nm " +"STAILQ_REMOVE_HEAD>, E<.Nm STAILQ_REMOVE>, E<.Nm LIST_EMPTY>, E<.Nm " +"LIST_ENTRY>, E<.Nm LIST_FIRST>, E<.Nm LIST_FOREACH>, E<.Nm LIST_HEAD>, E<.Nm " +"LIST_HEAD_INITIALIZER>, E<.Nm LIST_INIT>, E<.Nm LIST_INSERT_AFTER>, E<.Nm " +"LIST_INSERT_BEFORE>, E<.Nm LIST_INSERT_HEAD>, E<.Nm LIST_NEXT>, E<.Nm " +"LIST_REMOVE>, E<.Nm TAILQ_CONCAT>, E<.Nm TAILQ_EMPTY>, E<.Nm TAILQ_ENTRY>, " +"E<.Nm TAILQ_FIRST>, E<.Nm TAILQ_FOREACH>, E<.Nm TAILQ_FOREACH_REVERSE>, E<." +"Nm TAILQ_HEAD>, E<.Nm TAILQ_HEAD_INITIALIZER>, E<.Nm TAILQ_INIT>, E<.Nm " +"TAILQ_INSERT_AFTER>, E<.Nm TAILQ_INSERT_BEFORE>, E<.Nm TAILQ_INSERT_HEAD>, " +"E<.Nm TAILQ_INSERT_TAIL>, E<.Nm TAILQ_LAST>, E<.Nm TAILQ_NEXT>, E<.Nm " +"TAILQ_PREV>, E<.Nm TAILQ_REMOVE>, E<.Nm TAILQ_SWAP>" +msgstr "" + +#. type: Nd +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "implementations of lists, tail queues, and circular queues" +msgid "implementations of singly-linked lists, singly-linked tail queues," +msgstr "implementación de listas, colas, y colas circulares" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "lists and tail queues" +msgstr "" + +#. type: Sh +#: opensuse-leap-15-6 +#, no-wrap +msgid "SYNOPSIS" +msgstr "SINOPSIS" + +#. type: In +#: opensuse-leap-15-6 +#, no-wrap +msgid "sys/queue.h" +msgstr "sys/queue.h" + +# +# +# +# +#. .Fn SLIST_FOREACH_FROM "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" +#. .Fn SLIST_FOREACH_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var" +#. .Fn SLIST_FOREACH_FROM_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var" +#. .Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME" +#. .Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "SLIST_ENTRY NAME" +#. .Fn STAILQ_FOREACH_FROM "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" +#. .Fn STAILQ_FOREACH_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var" +#. .Fn STAILQ_FOREACH_FROM_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var" +#. .Fn STAILQ_LAST "STAILQ_HEAD *head" "TYPE" "STAILQ_ENTRY NAME" +#. .Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME" +#. .Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "STAILQ_ENTRY NAME" +#. .Fn LIST_FOREACH_FROM "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" +#. .Fn LIST_FOREACH_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var" +#. .Fn LIST_FOREACH_FROM_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var" +#. .Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME" +#. .Fn TAILQ_FOREACH_FROM "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" +#. .Fn TAILQ_FOREACH_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var" +#. .Fn TAILQ_FOREACH_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var" +#. .Fn TAILQ_FOREACH_REVERSE_FROM "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" +#. .Fn TAILQ_FOREACH_REVERSE_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var" +#. .Fn TAILQ_FOREACH_REVERSE_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var" +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"E<.Fn SLIST_EMPTY \"SLIST_HEAD *head\"> E<.Fn SLIST_ENTRY \"TYPE\"> E<.Fn " +"SLIST_FIRST \"SLIST_HEAD *head\"> E<.Fn SLIST_FOREACH \"TYPE *var\" " +"\"SLIST_HEAD *head\" \"SLIST_ENTRY NAME\"> E<.Fn SLIST_HEAD \"HEADNAME\" " +"\"TYPE\"> E<.Fn SLIST_HEAD_INITIALIZER \"SLIST_HEAD head\"> E<.Fn SLIST_INIT " +"\"SLIST_HEAD *head\"> E<.Fn SLIST_INSERT_AFTER \"TYPE *listelm\" \"TYPE " +"*elm\" \"SLIST_ENTRY NAME\"> E<.Fn SLIST_INSERT_HEAD \"SLIST_HEAD *head\" " +"\"TYPE *elm\" \"SLIST_ENTRY NAME\"> E<.Fn SLIST_NEXT \"TYPE *elm\" " +"\"SLIST_ENTRY NAME\"> E<.Fn SLIST_REMOVE_HEAD \"SLIST_HEAD *head\" " +"\"SLIST_ENTRY NAME\"> E<.Fn SLIST_REMOVE \"SLIST_HEAD *head\" \"TYPE *elm\" " +"\"TYPE\" \"SLIST_ENTRY NAME\"> E<.Fn STAILQ_CONCAT \"STAILQ_HEAD *head1\" " +"\"STAILQ_HEAD *head2\"> E<.Fn STAILQ_EMPTY \"STAILQ_HEAD *head\"> E<.Fn " +"STAILQ_ENTRY \"TYPE\"> E<.Fn STAILQ_FIRST \"STAILQ_HEAD *head\"> E<.Fn " +"STAILQ_FOREACH \"TYPE *var\" \"STAILQ_HEAD *head\" \"STAILQ_ENTRY NAME\"> E<." +"Fn STAILQ_HEAD \"HEADNAME\" \"TYPE\"> E<.Fn STAILQ_HEAD_INITIALIZER " +"\"STAILQ_HEAD head\"> E<.Fn STAILQ_INIT \"STAILQ_HEAD *head\"> E<.Fn " +"STAILQ_INSERT_AFTER \"STAILQ_HEAD *head\" \"TYPE *listelm\" \"TYPE *elm\" " +"\"STAILQ_ENTRY NAME\"> E<.Fn STAILQ_INSERT_HEAD \"STAILQ_HEAD *head\" \"TYPE " +"*elm\" \"STAILQ_ENTRY NAME\"> E<.Fn STAILQ_INSERT_TAIL \"STAILQ_HEAD *head\" " +"\"TYPE *elm\" \"STAILQ_ENTRY NAME\"> E<.Fn STAILQ_NEXT \"TYPE *elm\" " +"\"STAILQ_ENTRY NAME\"> E<.Fn STAILQ_REMOVE_HEAD \"STAILQ_HEAD *head\" " +"\"STAILQ_ENTRY NAME\"> E<.Fn STAILQ_REMOVE \"STAILQ_HEAD *head\" \"TYPE " +"*elm\" \"TYPE\" \"STAILQ_ENTRY NAME\"> E<.Fn LIST_EMPTY \"LIST_HEAD *head\"> " +"E<.Fn LIST_ENTRY \"TYPE\"> E<.Fn LIST_FIRST \"LIST_HEAD *head\"> E<.Fn " +"LIST_FOREACH \"TYPE *var\" \"LIST_HEAD *head\" \"LIST_ENTRY NAME\"> E<.Fn " +"LIST_HEAD \"HEADNAME\" \"TYPE\"> E<.Fn LIST_HEAD_INITIALIZER \"LIST_HEAD " +"head\"> E<.Fn LIST_INIT \"LIST_HEAD *head\"> E<.Fn LIST_INSERT_AFTER \"TYPE " +"*listelm\" \"TYPE *elm\" \"LIST_ENTRY NAME\"> E<.Fn LIST_INSERT_BEFORE " +"\"TYPE *listelm\" \"TYPE *elm\" \"LIST_ENTRY NAME\"> E<.Fn LIST_INSERT_HEAD " +"\"LIST_HEAD *head\" \"TYPE *elm\" \"LIST_ENTRY NAME\"> E<.Fn LIST_NEXT " +"\"TYPE *elm\" \"LIST_ENTRY NAME\"> E<.Fn LIST_REMOVE \"TYPE *elm\" " +"\"LIST_ENTRY NAME\"> E<.Fn LIST_SWAP \"LIST_HEAD *head1\" \"LIST_HEAD " +"*head2\" \"TYPE\" \"LIST_ENTRY NAME\"> E<.Fn TAILQ_CONCAT \"TAILQ_HEAD " +"*head1\" \"TAILQ_HEAD *head2\" \"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_EMPTY " +"\"TAILQ_HEAD *head\"> E<.Fn TAILQ_ENTRY \"TYPE\"> E<.Fn TAILQ_FIRST " +"\"TAILQ_HEAD *head\"> E<.Fn TAILQ_FOREACH \"TYPE *var\" \"TAILQ_HEAD *head\" " +"\"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_FOREACH_REVERSE \"TYPE *var\" \"TAILQ_HEAD " +"*head\" \"HEADNAME\" \"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_HEAD \"HEADNAME\" " +"\"TYPE\"> E<.Fn TAILQ_HEAD_INITIALIZER \"TAILQ_HEAD head\"> E<.Fn TAILQ_INIT " +"\"TAILQ_HEAD *head\"> E<.Fn TAILQ_INSERT_AFTER \"TAILQ_HEAD *head\" \"TYPE " +"*listelm\" \"TYPE *elm\" \"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_INSERT_BEFORE " +"\"TYPE *listelm\" \"TYPE *elm\" \"TAILQ_ENTRY NAME\"> E<.Fn " +"TAILQ_INSERT_HEAD \"TAILQ_HEAD *head\" \"TYPE *elm\" \"TAILQ_ENTRY NAME\"> " +"E<.Fn TAILQ_INSERT_TAIL \"TAILQ_HEAD *head\" \"TYPE *elm\" \"TAILQ_ENTRY " +"NAME\"> E<.Fn TAILQ_LAST \"TAILQ_HEAD *head\" \"HEADNAME\"> E<.Fn TAILQ_NEXT " +"\"TYPE *elm\" \"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_PREV \"TYPE *elm\" " +"\"HEADNAME\" \"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_REMOVE \"TAILQ_HEAD *head\" " +"\"TYPE *elm\" \"TAILQ_ENTRY NAME\"> E<.Fn TAILQ_SWAP \"TAILQ_HEAD *head1\" " +"\"TAILQ_HEAD *head2\" \"TYPE\" \"TAILQ_ENTRY NAME\">" +msgstr "" + +#. type: Sh +#: opensuse-leap-15-6 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPCIÓN" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "These macros define and operate on three types of data structures: lists, " +#| "tail queues, and circular queues. All three structures support the " +#| "following functionality:" +msgid "" +"These macros define and operate on four types of data structures: singly-" +"linked lists, singly-linked tail queues, lists, and tail queues. All four " +"structures support the following functionality:" +msgstr "" +"Estas macros definen y operan sobre tres tipos de estructuras de datos: " +"listas, colas, y colas circulares. Las tres estructuras soportan la " +"siguiente funcionalidad:" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Insertion of a new entry at the head of the list." +msgstr "Inserción de una nueva entrada en la cabeza de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Insertion of a new entry after any element in the list." +msgstr "" +"Inserción de una nueva entrada después de cualquier elemento de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "Insertion of a new entry at the head of the list." +msgid "O(1) removal of an entry from the head of the list." +msgstr "Inserción de una nueva entrada en la cabeza de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Forward traversal through the list." +msgstr "Recorrido hacia delante de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Swapping the contents of two lists." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"Singly-linked lists are the simplest of the four data structures and support " +"only the above functionality. Singly-linked lists are ideal for " +"applications with large datasets and few or no removals, or for implementing " +"a LIFO queue. Singly-linked lists add the following functionality:" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "Removal of any entry in the list." +msgid "O(n) removal of any entry in the list." +msgstr "Eliminación de cualquier entrada en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "Tail queues add the following functionality:" +msgid "Singly-linked tail queues add the following functionality:" +msgstr "Las colas añaden la siguiente funcionalidad:" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Entries can be added at the end of a list." +msgstr "Las entradas pueden ser añadidas al final de una lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "They may be concatenated." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "However:" +msgstr "Sin embargo:" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "All list insertions must specify the head of the list." +msgstr "" +"Todas las inserciones en la lista deben especificar la cabeza de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Each head entry requires two pointers rather than one." +msgstr "Cada entrada de cabecera requiere dos punteros en lugar de uno." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "Code size is about 15% greater and operations run about 20% slower than " +#| "lists." +msgid "" +"Code size is about 15% greater and operations run about 20% slower than " +"singly-linked lists." +msgstr "" +"El tamaño del código es aproximadamente un 15% más grande y las operaciones " +"se ejecutan sobre un 20% más lentas que en las listas." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"Singly-linked tail queues are ideal for applications with large datasets and " +"few or no removals, or for implementing a FIFO queue." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"All doubly linked types of data structures (lists and tail queues) " +"additionally allow:" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "Insertion of a new entry after any element in the list." +msgid "Insertion of a new entry before any element in the list." +msgstr "" +"Inserción de una nueva entrada después de cualquier elemento de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "Removal of any entry in the list." +msgid "O(1) removal of any entry in the list." +msgstr "Eliminación de cualquier entrada en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "Each head entry requires two pointers rather than one." +msgid "Each element requires two pointers rather than one." +msgstr "Cada entrada de cabecera requiere dos punteros en lugar de uno." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"Code size and execution time of operations (except for removal) is about " +"twice that of the singly-linked data-structures." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "Lists are the simplest of the three data structures and support only the " +#| "above functionality." +msgid "" +"Linked lists are the simplest of the doubly linked data structures. They " +"add the following functionality over the above:" +msgstr "" +"Las listas son las más simples de las tres estructuras de datos y soportan " +"sólo la funcionalidad descrita arriba." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "They may be traversed backwards." +msgstr "Pueden ser recorridas hacia atrás." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"To traverse backwards, an entry to begin the traversal and the list in which " +"it is contained must be specified." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "Tail queues add the following functionality:" +msgstr "Las colas añaden la siguiente funcionalidad:" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "They may be traversed backwards, from tail to head." +msgstr "Pueden ser recorridas hacia atrás, desde la cola hasta la cabeza." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "All list insertions and removals must specify the head of the list." +msgstr "" +"Todas las inserciones y eliminaciones en la lista deben especificar la " +"cabeza de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "In the macro definitions, E<.Fa TYPE> is the name of a user defined " +#| "structure, that must contain a field of type E<.Li LIST_ENTRY>, E<.Li " +#| "TAILQ_ENTRY>, or E<.Li CIRCLEQ_ENTRY>, named E<.Fa NAME>. The argument " +#| "E<.Fa HEADNAME> is the name of a user defined structure that must be " +#| "declared using the macros E<.Li LIST_HEAD>, E<.Li TAILQ_HEAD>, or E<.Li " +#| "CIRCLEQ_HEAD>. See the examples below for further explanation of how " +#| "these macros are used." +msgid "" +"In the macro definitions, E<.Fa TYPE> is the name of a user defined " +"structure, that must contain a field of type E<.Li SLIST_ENTRY>, E<.Li " +"STAILQ_ENTRY>, E<.Li LIST_ENTRY>, or E<.Li TAILQ_ENTRY>, named E<.Fa NAME>. " +"The argument E<.Fa HEADNAME> is the name of a user defined structure that " +"must be declared using the macros E<.Li SLIST_HEAD>, E<.Li STAILQ_HEAD>, E<." +"Li LIST_HEAD>, or E<.Li TAILQ_HEAD>. See the examples below for further " +"explanation of how these macros are used." +msgstr "" +"En las definiciones de las macros, E<.Fa TYPE> es el nombre de una " +"estructura definida por el usuario, que debe contener un campo de tipo E<.Li " +"LIST_ENTRY>, E<.Li TAILQ_ENTRY>, o E<.Li CIRCLEQ_ENTRY>, con nombre E<.Fa " +"NAME>. El argumento E<.Fa HEADNAME> es el nombre de una estructura definida " +"por el usuario que debe ser declarada usando las macros E<.Li LIST_HEAD>, E<." +"Li TAILQ_HEAD>, o E<.Li CIRCLEQ_HEAD>. Vea los ejemplos más abajo para una " +"explicación más detallada sobre cómo se usan estas macros." + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Singly-linked lists" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "A list is headed by a structure defined by the E<.Nm LIST_HEAD> macro. " +#| "This structure contains a single pointer to the first element on the " +#| "list. The elements are doubly linked so that an arbitrary element can be " +#| "removed without traversing the list. New elements can be added to the " +#| "list after an existing element or at the head of the list. A E<.Fa " +#| "LIST_HEAD> structure is declared as follows:" +msgid "" +"A singly-linked list is headed by a structure defined by the E<.Nm " +"SLIST_HEAD> macro. This structure contains a single pointer to the first " +"element on the list. 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 list after an existing element " +"or at the head of the list. An E<.Fa SLIST_HEAD> structure is declared as " +"follows:" +msgstr "" +"Una lista es encabezada por una estructura definida por la macro E<.Nm " +"LIST_HEAD.> Esta estructura contiene un sólo puntero al primer elemento de " +"la lista. Los elementos están doblemente enlazados por lo que puede " +"eliminarse un elemento arbitrario sin recorrer la lista. Nuevos elementos " +"pueden ser añadidos a la lista después de un elemento existente o en la " +"cabeza de la lista. Una estructura E<.Fa LIST_HEAD> es declarada como sigue:" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "SLIST_HEAD(HEADNAME, TYPE) head;\n" +msgstr "SLIST_HEAD(HEADNAME, TYPE) head;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"where E<.Fa HEADNAME> is the name of the structure to be defined, and E<.Fa " +"TYPE> is the type of the elements to be linked into the list. A pointer to " +"the head of the list can later be declared as:" +msgstr "" +"donde E<.Fa HEADNAME> es el nombre de la estructura a ser definida, y E<.Fa " +"TYPE> es el tipo de elementos que serán enlazados en la lista. Un puntero a " +"la cabeza de la lista puede ser declarado después como:" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "struct HEADNAME *headp;\n" +msgstr "struct HEADNAME *headp;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "(The names E<.Li head> and E<.Li headp> are user selectable.)" +msgstr "" +"(Los nombres E<.Li head> y E<.Li headp> son seleccionables por el usuario.)" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_INIT> initializes the list referenced by E<.Fa head>." +msgid "" +"The macro E<.Nm SLIST_HEAD_INITIALIZER> evaluates to an initializer for the " +"list E<.Fa head>." +msgstr "" +"La macro E<.Nm LIST_INIT> inicializa la lista referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_ENTRY> declares a structure that connects the " +#| "elements in the list." +msgid "" +"The macro E<.Nm SLIST_EMPTY> evaluates to true if there are no elements in " +"the list." +msgstr "" +"La macro E<.Nm LIST_ENTRY> declara una estructura que conecta los elementos " +"en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_ENTRY> declares a structure that connects the elements " +"in the list." +msgstr "" +"La macro E<.Nm SLIST_ENTRY> declara una estructura que conecta los elementos " +"en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_REMOVE> removes the element E<.Fa elm> from the list." +msgid "" +"The macro E<.Nm SLIST_FIRST> returns the first element in the list or NULL " +"if the list is empty." +msgstr "" +"La macro E<.Nm LIST_REMOVE> elimina el elemento E<.Fa elm> de la lista." + +#. .Pp +#. The macro +#. .Nm SLIST_FOREACH_FROM +#. behaves identically to +#. .Nm SLIST_FOREACH +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found SLIST element and begins the loop at +#. .Fa var +#. instead of the first element in the SLIST referenced by +#. .Fa head . +#. .Pp +#. The macro +#. .Nm SLIST_FOREACH_SAFE +#. traverses the list referenced by +#. .Fa head +#. in the forward direction, assigning each element in +#. turn to +#. .Fa var . +#. However, unlike +#. .Fn SLIST_FOREACH +#. here it is permitted to both remove +#. .Fa var +#. as well as free it from within the loop safely without interfering with the +#. traversal. +#. .Pp +#. The macro +#. .Nm SLIST_FOREACH_FROM_SAFE +#. behaves identically to +#. .Nm SLIST_FOREACH_SAFE +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found SLIST element and begins the loop at +#. .Fa var +#. instead of the first element in the SLIST referenced by +#. .Fa head . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_FOREACH> traverses the list referenced by E<.Fa head> " +"in the forward direction, assigning each element in turn to E<.Fa var>." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_INIT> initializes the list referenced by E<.Fa head>." +msgstr "" +"La macro E<.Nm SLIST_INIT> inicializa la lista referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_INSERT_HEAD> inserts the new element E<.Fa elm> at the " +"head of the list." +msgstr "" +"La macro E<.Nm SLIST_INSERT_HEAD> inserta el nuevo elemento E<.Fa elm> en la " +"cabeza de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_INSERT_AFTER> inserts the new element E<.Fa elm> after " +"the element E<.Fa listelm>." +msgstr "" +"La macro E<.Nm SLIST_INSERT_AFTER> inserta el nuevo elemento E<.Fa elm> " +"después del elemento E<.Fa listelm>." + +#. .Pp +#. The macro +#. .Nm SLIST_REMOVE_AFTER +#. removes the element after +#. .Fa elm +#. from the list. +#. Unlike +#. .Fa SLIST_REMOVE , +#. this macro does not traverse the entire list. +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_ENTRY> declares a structure that connects the " +#| "elements in the list." +msgid "The macro E<.Nm SLIST_NEXT> returns the next element in the list." +msgstr "" +"La macro E<.Nm LIST_ENTRY> declara una estructura que conecta los elementos " +"en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_REMOVE_HEAD> removes the element E<.Fa elm> from the " +"head of the list. For optimum efficiency, elements being removed from the " +"head of the list should explicitly use this macro instead of the generic E<." +"Fa SLIST_REMOVE> macro." +msgstr "" + +#. .Pp +#. The macro +#. .Nm SLIST_SWAP +#. swaps the contents of +#. .Fa head1 +#. and +#. .Fa head2 . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm SLIST_REMOVE> removes the element E<.Fa elm> from the list." +msgstr "" +"La macro E<.Nm SLIST_REMOVE> elimina el elemento E<.Fa elm> de la lista." + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Singly-linked list example" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "LIST_HEAD(listhead, entry) head;\n" +#| "struct listhead *headp;\t\t/* List head. */\n" +#| "struct entry {\n" +#| "\t...\n" +#| "\tLIST_ENTRY(entry) entries;\t/* List. */\n" +#| "\t...\n" +#| "} *n1, *n2, *np;\n" +msgid "" +"SLIST_HEAD(slisthead, entry) head =\n" +" SLIST_HEAD_INITIALIZER(head);\n" +"struct slisthead *headp;\t\t/* Singly-linked List\n" +" head. */\n" +"struct entry {\n" +"\t...\n" +"\tSLIST_ENTRY(entry) entries;\t/* Singly-linked List. */\n" +"\t...\n" +"} *n1, *n2, *n3, *np;\n" +msgstr "" +"LIST_HEAD(listhead, entry) head;\n" +"struct listhead *headp;\t\t/* Cabeza de la lista. */\n" +"struct entry {\n" +"\t...\n" +"\tLIST_ENTRY(entry) entries;\t/* Lista. */\n" +"\t...\n" +"} *n1, *n2, *np;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "SLIST_INIT(&head);\t\t\t/* Initialize the list. */\n" +msgstr "SLIST_INIT(&head);\t\t\t/* Inicializa la lista. */\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = malloc(sizeof(struct entry));\t/* Insert at the head. */\n" +"SLIST_INSERT_HEAD(&head, n1, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en la cabeza. */\n" +"SLIST_INSERT_HEAD(&head, n1, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n2 = malloc(sizeof(struct entry));\t/* Insert after. */\n" +"SLIST_INSERT_AFTER(n1, n2, entries);\n" +msgstr "" +"n2 = malloc(sizeof(struct entry));\t/* Inserta después. */\n" +"SLIST_INSERT_AFTER(n1, n2, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"SLIST_REMOVE(&head, n2, entry, entries);/* Deletion. */\n" +"free(n2);\n" +msgstr "" + +#. /* Safe forward traversal. */ +#. SLIST_FOREACH_SAFE(np, &head, entries, np_temp) { +#. np\->do_stuff(); +#. ... +#. SLIST_REMOVE(&head, np, entry, entries); +#. free(np); +#. } +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n3 = SLIST_FIRST(&head);\n" +"SLIST_REMOVE_HEAD(&head, entries);\t/* Deletion from the head. */\n" +"free(n3);\n" +"\t\t\t\t\t/* Forward traversal. */\n" +"SLIST_FOREACH(np, &head, entries)\n" +"\tnp\\-E<gt> ...\n" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"while (!SLIST_EMPTY(&head)) {\t\t/* List Deletion. */\n" +"\tn1 = SLIST_FIRST(&head);\n" +"\tSLIST_REMOVE_HEAD(&head, entries);\n" +"\tfree(n1);\n" +"}\n" +msgstr "" + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Singly-linked tail queues" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "A tail queue is headed by a structure defined by the E<.Nm TAILQ_HEAD> " +#| "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 doubly linked so that an arbitrary element can " +#| "be removed without traversing the tail queue. 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 E<.Fa TAILQ_HEAD> structure is " +#| "declared as follows:" +msgid "" +"A singly-linked tail queue is headed by a structure defined by the E<.Nm " +"STAILQ_HEAD> 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 " +"E<.Fa STAILQ_HEAD> structure is declared as follows:" +msgstr "" +"Una cola es encabezada por una estructura definida por la macro E<.Nm " +"TAILQ_HEAD.> Esta estructura contiene un par de punteros, uno al primer " +"elemento en la cola y el otro al último elemento en la cola. Los elementos " +"están doblemente enlazadas por lo que puede eliminarse un elemento " +"arbitrario sin recorrer la cola. Nuevos elementos pueden añadirse a la cola " +"después de un elemento existente, en la cabeza de la cola, o en el final de " +"la cola. Una estructura E<.Fa TAILQ_HEAD> se declara como sigue:" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "STAILQ_HEAD(HEADNAME, TYPE) head;\n" +msgstr "STAILQ_HEAD(HEADNAME, TYPE) head;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"where E<.Li HEADNAME> is the name of the structure to be defined, and E<.Li " +"TYPE> 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 "" +"donde E<.Li HEADNAME> es el nombre de la estructura a ser definida, y E<.Li " +"TYPE> es el tipo de los elementos que serán enlazados en la cola. Un " +"puntero a la cabeza de la cola puede ser declarado después como:" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_INIT> initializes the tail queue referenced by E<." +#| "Fa head>." +msgid "" +"The macro E<.Nm STAILQ_HEAD_INITIALIZER> evaluates to an initializer for the " +"tail queue E<.Fa head>." +msgstr "" +"La macro E<.Nm TAILQ_INIT> inicializa la cola referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_CONCAT> concatenates the tail queue headed by E<.Fa " +"head2> onto the end of the one headed by E<.Fa head1> removing all entries " +"from the former." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_ENTRY> declares a structure that connects the " +#| "elements in the tail queue." +msgid "" +"The macro E<.Nm STAILQ_EMPTY> evaluates to true if there are no items on the " +"tail queue." +msgstr "" +"La macro E<.Nm TAILQ_ENTRY> declara una estructura que conecta los elementos " +"en la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_ENTRY> declares a structure that connects the " +"elements in the tail queue." +msgstr "" +"La macro E<.Nm STAILQ_ENTRY> declara una estructura que conecta los " +"elementos en la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_INSERT_TAIL> inserts the new element E<.Fa elm> at " +#| "the end of the tail queue." +msgid "" +"The macro E<.Nm STAILQ_FIRST> returns the first item on the tail queue or " +"NULL if the tail queue is empty." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_TAIL> inserta el nuevo elemento E<.Fa elm> en el " +"final de la cola." + +#. .Pp +#. The macro +#. .Nm STAILQ_FOREACH_FROM +#. behaves identically to +#. .Nm STAILQ_FOREACH +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found STAILQ element and begins the loop at +#. .Fa var +#. instead of the first element in the STAILQ referenced by +#. .Fa head . +#. .Pp +#. The macro +#. .Nm STAILQ_FOREACH_SAFE +#. traverses the tail queue referenced by +#. .Fa head +#. in the forward direction, assigning each element +#. in turn to +#. .Fa var . +#. However, unlike +#. .Fn STAILQ_FOREACH +#. here it is permitted to both remove +#. .Fa var +#. as well as free it from within the loop safely without interfering with the +#. traversal. +#. .Pp +#. The macro +#. .Nm STAILQ_FOREACH_FROM_SAFE +#. behaves identically to +#. .Nm STAILQ_FOREACH_SAFE +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found STAILQ element and begins the loop at +#. .Fa var +#. instead of the first element in the STAILQ referenced by +#. .Fa head . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_FOREACH> traverses the tail queue referenced by E<.Fa " +"head> in the forward direction, assigning each element in turn to E<.Fa var>." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_INIT> initializes the tail queue referenced by E<.Fa " +"head>." +msgstr "" +"La macro E<.Nm STAILQ_INIT> inicializa la cola referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_INSERT_HEAD> inserts the new element E<.Fa elm> at " +"the head of the tail queue." +msgstr "" +"La macro E<.Nm STAILQ_INSERT_HEAD> inserta el nuevo elemento E<.Fa elm> en " +"la cabeza de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_INSERT_TAIL> inserts the new element E<.Fa elm> at " +"the end of the tail queue." +msgstr "" +"La macro E<.Nm STAILQ_INSERT_TAIL> inserta el nuevo elemento E<.Fa elm> en " +"el final de la cola." + +#. .Pp +#. The macro +#. .Nm STAILQ_LAST +#. returns the last item on the tail queue. +#. If the tail queue is empty the return value is +#. .Dv NULL . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_INSERT_AFTER> inserts the new element E<.Fa elm> " +"after the element E<.Fa listelm>." +msgstr "" +"La macro E<.Nm STAILQ_INSERT_AFTER> inserta el nuevo elemento E<.Fa elm> " +"después del elemento E<.Fa listelm>." + +#. .Pp +#. The macro +#. .Nm STAILQ_REMOVE_AFTER +#. removes the element after +#. .Fa elm +#. from the tail queue. +#. Unlike +#. .Fa STAILQ_REMOVE , +#. this macro does not traverse the entire tail queue. +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_REMOVE> removes the element E<.Fa elm> from the " +#| "tail queue." +msgid "" +"The macro E<.Nm STAILQ_NEXT> returns the next item on the tail queue, or " +"NULL this item is the last." +msgstr "" +"La macro E<.Nm TAILQ_REMOVE> elimina el elemento E<.Fa elm> de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_REMOVE_HEAD> 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 E<." +"Fa STAILQ_REMOVE> macro." +msgstr "" + +#. .Pp +#. The macro +#. .Nm STAILQ_SWAP +#. swaps the contents of +#. .Fa head1 +#. and +#. .Fa head2 . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm STAILQ_REMOVE> removes the element E<.Fa elm> from the tail " +"queue." +msgstr "" +"La macro E<.Nm STAILQ_REMOVE> elimina el elemento E<.Fa elm> de la cola." + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Singly-linked tail queue example" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "TAILQ_HEAD(tailhead, entry) head;\n" +#| "struct tailhead *headp;\t\t/* Tail queue head. */\n" +#| "struct entry {\n" +#| "\t...\n" +#| "\tTAILQ_ENTRY(entry) entries;\t/* Tail queue. */\n" +#| "\t...\n" +#| "} *n1, *n2, *np;\n" +msgid "" +"STAILQ_HEAD(stailhead, entry) head =\n" +" STAILQ_HEAD_INITIALIZER(head);\n" +"struct stailhead *headp;\t\t/* Singly-linked tail queue head. */\n" +"struct entry {\n" +"\t...\n" +"\tSTAILQ_ENTRY(entry) entries;\t/* Tail queue. */\n" +"\t...\n" +"} *n1, *n2, *n3, *np;\n" +msgstr "" +"TAILQ_HEAD(tailhead, entry) head;\n" +"struct tailhead *headp;\t\t/* Cabeza de la cola. */\n" +"struct entry {\n" +"\t...\n" +"\tTAILQ_ENTRY(entry) entries;\t/* Cola. */\n" +"\t...\n" +"} *n1, *n2, *np;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "STAILQ_INIT(&head);\t\t\t/* Initialize the queue. */\n" +msgstr "STAILQ_INIT(&head);\t\t\t/* Inicializa la cola. */\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = malloc(sizeof(struct entry));\t/* Insert at the head. */\n" +"STAILQ_INSERT_HEAD(&head, n1, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en la cabeza. */\n" +"STAILQ_INSERT_HEAD(&head, n1, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = malloc(sizeof(struct entry));\t/* Insert at the tail. */\n" +"STAILQ_INSERT_TAIL(&head, n1, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en el final. */\n" +"STAILQ_INSERT_TAIL(&head, n1, entries);\n" + +#. /* Safe forward traversal. */ +#. STAILQ_FOREACH_SAFE(np, &head, entries, np_temp) { +#. np\->do_stuff(); +#. ... +#. STAILQ_REMOVE(&head, np, entry, entries); +#. free(np); +#. } +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n2 = malloc(sizeof(struct entry));\t/* Insert after. */\n" +"STAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" +"\t\t\t\t\t/* Deletion. */\n" +"STAILQ_REMOVE(&head, n2, entry, entries);\n" +"free(n2);\n" +"\t\t\t\t\t/* Deletion from the head. */\n" +"n3 = STAILQ_FIRST(&head);\n" +"STAILQ_REMOVE_HEAD(&head, entries);\n" +"free(n3);\n" +"\t\t\t\t\t/* Forward traversal. */\n" +"STAILQ_FOREACH(np, &head, entries)\n" +"\tnp\\-E<gt> ...\n" +"\t\t\t\t\t/* TailQ Deletion. */\n" +"while (!STAILQ_EMPTY(&head)) {\n" +"\tn1 = STAILQ_FIRST(&head);\n" +"\tSTAILQ_REMOVE_HEAD(&head, entries);\n" +"\tfree(n1);\n" +"}\n" +"\t\t\t\t\t/* Faster TailQ Deletion. */\n" +"n1 = STAILQ_FIRST(&head);\n" +"while (n1 != NULL) {\n" +"\tn2 = STAILQ_NEXT(n1, entries);\n" +"\tfree(n1);\n" +"\tn1 = n2;\n" +"}\n" +"STAILQ_INIT(&head);\n" +msgstr "" + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Lists" +msgstr "Listas" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "A list is headed by a structure defined by the E<.Nm LIST_HEAD> macro. " +#| "This structure contains a single pointer to the first element on the " +#| "list. The elements are doubly linked so that an arbitrary element can be " +#| "removed without traversing the list. New elements can be added to the " +#| "list after an existing element or at the head of the list. A E<.Fa " +#| "LIST_HEAD> structure is declared as follows:" +msgid "" +"A list is headed by a structure defined by the E<.Nm LIST_HEAD> macro. This " +"structure contains a single pointer to the first element on the list. The " +"elements are doubly linked so that an arbitrary element can be removed " +"without traversing the list. New elements can be added to the list after an " +"existing element, before an existing element, or at the head of the list. A " +"E<.Fa LIST_HEAD> structure is declared as follows:" +msgstr "" +"Una lista es encabezada por una estructura definida por la macro E<.Nm " +"LIST_HEAD.> Esta estructura contiene un sólo puntero al primer elemento de " +"la lista. Los elementos están doblemente enlazados por lo que puede " +"eliminarse un elemento arbitrario sin recorrer la lista. Nuevos elementos " +"pueden ser añadidos a la lista después de un elemento existente o en la " +"cabeza de la lista. Una estructura E<.Fa LIST_HEAD> es declarada como sigue:" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "LIST_HEAD(HEADNAME, TYPE) head;\n" +msgstr "LIST_HEAD(HEADNAME, TYPE) head;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_INIT> initializes the list referenced by E<.Fa head>." +msgid "" +"The macro E<.Nm LIST_HEAD_INITIALIZER> evaluates to an initializer for the " +"list E<.Fa head>." +msgstr "" +"La macro E<.Nm LIST_INIT> inicializa la lista referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_ENTRY> declares a structure that connects the " +#| "elements in the list." +msgid "" +"The macro E<.Nm LIST_EMPTY> evaluates to true if there are no elements in " +"the list." +msgstr "" +"La macro E<.Nm LIST_ENTRY> declara una estructura que conecta los elementos " +"en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_ENTRY> declares a structure that connects the elements " +"in the list." +msgstr "" +"La macro E<.Nm LIST_ENTRY> declara una estructura que conecta los elementos " +"en la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_REMOVE> removes the element E<.Fa elm> from the list." +msgid "" +"The macro E<.Nm LIST_FIRST> returns the first element in the list or NULL if " +"the list is empty." +msgstr "" +"La macro E<.Nm LIST_REMOVE> elimina el elemento E<.Fa elm> de la lista." + +#. .Pp +#. The macro +#. .Nm LIST_FOREACH_FROM +#. behaves identically to +#. .Nm LIST_FOREACH +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found LIST element and begins the loop at +#. .Fa var +#. instead of the first element in the LIST referenced by +#. .Fa head . +#. .Pp +#. The macro +#. .Nm LIST_FOREACH_SAFE +#. traverses the list referenced by +#. .Fa head +#. in the forward direction, assigning each element in turn to +#. .Fa var . +#. However, unlike +#. .Fn LIST_FOREACH +#. here it is permitted to both remove +#. .Fa var +#. as well as free it from within the loop safely without interfering with the +#. traversal. +#. .Pp +#. The macro +#. .Nm LIST_FOREACH_FROM_SAFE +#. behaves identically to +#. .Nm LIST_FOREACH_SAFE +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found LIST element and begins the loop at +#. .Fa var +#. instead of the first element in the LIST referenced by +#. .Fa head . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_FOREACH> traverses the list referenced by E<.Fa head> " +"in the forward direction, assigning each element in turn to E<.Fa var>." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_INIT> initializes the list referenced by E<.Fa head>." +msgstr "" +"La macro E<.Nm LIST_INIT> inicializa la lista referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_INSERT_HEAD> inserts the new element E<.Fa elm> at the " +"head of the list." +msgstr "" +"La macro E<.Nm LIST_INSERT_HEAD> inserta el nuevo elemento E<.Fa elm> en la " +"cabeza de la lista." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_INSERT_AFTER> inserts the new element E<.Fa elm> after " +"the element E<.Fa listelm>." +msgstr "" +"La macro E<.Nm LIST_INSERT_AFTER> inserta el nuevo elemento E<.Fa elm> " +"después del elemento E<.Fa listelm>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_INSERT_BEFORE> inserts the new element E<.Fa elm> " +"before the element E<.Fa listelm>." +msgstr "" +"La macro E<.Nm LIST_INSERT_BEFORE> inserta el nuevo elemento E<.Fa elm> " +"antes del elemento E<.Fa listelm>." + +#. .Pp +#. The macro +#. .Nm LIST_PREV +#. returns the previous element in the list, or NULL if this is the first. +#. List +#. .Fa head +#. must contain element +#. .Fa elm . +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm LIST_INSERT_HEAD> inserts the new element E<.Fa elm> at " +#| "the head of the list." +msgid "" +"The macro E<.Nm LIST_NEXT> returns the next element in the list, or NULL if " +"this is the last." +msgstr "" +"La macro E<.Nm LIST_INSERT_HEAD> inserta el nuevo elemento E<.Fa elm> en la " +"cabeza de la lista." + +#. .Pp +#. The macro +#. .Nm LIST_SWAP +#. swaps the contents of +#. .Fa head1 +#. and +#. .Fa head2 . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm LIST_REMOVE> removes the element E<.Fa elm> from the list." +msgstr "" +"La macro E<.Nm LIST_REMOVE> elimina el elemento E<.Fa elm> de la lista." + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "List example" +msgstr "Ejemplo de lista" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "LIST_HEAD(listhead, entry) head;\n" +#| "struct listhead *headp;\t\t/* List head. */\n" +#| "struct entry {\n" +#| "\t...\n" +#| "\tLIST_ENTRY(entry) entries;\t/* List. */\n" +#| "\t...\n" +#| "} *n1, *n2, *np;\n" +msgid "" +"LIST_HEAD(listhead, entry) head =\n" +" LIST_HEAD_INITIALIZER(head);\n" +"struct listhead *headp;\t\t\t/* List head. */\n" +"struct entry {\n" +"\t...\n" +"\tLIST_ENTRY(entry) entries;\t/* List. */\n" +"\t...\n" +"} *n1, *n2, *n3, *np, *np_temp;\n" +msgstr "" +"LIST_HEAD(listhead, entry) head;\n" +"struct listhead *headp;\t\t/* Cabeza de la lista. */\n" +"struct entry {\n" +"\t...\n" +"\tLIST_ENTRY(entry) entries;\t/* Lista. */\n" +"\t...\n" +"} *n1, *n2, *np;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "LIST_INIT(&head);\t\t\t/* Initialize the list. */\n" +msgstr "LIST_INIT(&head);\t\t\t/* Inicializa la lista. */\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = malloc(sizeof(struct entry));\t/* Insert at the head. */\n" +"LIST_INSERT_HEAD(&head, n1, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en la cabeza. */\n" +"LIST_INSERT_HEAD(&head, n1, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n2 = malloc(sizeof(struct entry));\t/* Insert after. */\n" +"LIST_INSERT_AFTER(n1, n2, entries);\n" +msgstr "" +"n2 = malloc(sizeof(struct entry));\t/* Inserta después. */\n" +"LIST_INSERT_AFTER(n1, n2, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n3 = malloc(sizeof(struct entry));\t/* Insert before. */\n" +"LIST_INSERT_BEFORE(n2, n3, entries);\n" +msgstr "" +"n3 = malloc(sizeof(struct entry));\t/* Inserta en la cabeza. */\n" +"LIST_INSERT_BEFORE(n2, n3, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"LIST_REMOVE(n2, entries);\t\t/* Deletion. */\n" +"free(n2);\n" +"\t\t\t\t\t/* Forward traversal. */\n" +"LIST_FOREACH(np, &head, entries)\n" +"\tnp\\-E<gt> ...\n" +msgstr "" + +#. /* Safe forward traversal. */ +#. LIST_FOREACH_SAFE(np, &head, entries, np_temp) { +#. np\->do_stuff(); +#. ... +#. LIST_REMOVE(np, entries); +#. free(np); +#. } +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"while (!LIST_EMPTY(&head)) {\t\t/* List Deletion. */\n" +"\tn1 = LIST_FIRST(&head);\n" +"\tLIST_REMOVE(n1, entries);\n" +"\tfree(n1);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = LIST_FIRST(&head);\t\t\t/* Faster List Deletion. */\n" +"while (n1 != NULL) {\n" +"\tn2 = LIST_NEXT(n1, entries);\n" +"\tfree(n1);\n" +"\tn1 = n2;\n" +"}\n" +"LIST_INIT(&head);\n" +msgstr "" + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Tail queues" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "A tail queue is headed by a structure defined by the E<.Nm TAILQ_HEAD> " +#| "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 doubly linked so that an arbitrary element can " +#| "be removed without traversing the tail queue. 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 E<.Fa TAILQ_HEAD> structure is " +#| "declared as follows:" +msgid "" +"A tail queue is headed by a structure defined by the E<.Nm TAILQ_HEAD> " +"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 doubly linked so that an arbitrary element can be removed " +"without traversing the tail queue. New elements can be added to the tail " +"queue after an existing element, before an existing element, at the head of " +"the tail queue, or at the end of the tail queue. A E<.Fa TAILQ_HEAD> " +"structure is declared as follows:" +msgstr "" +"Una cola es encabezada por una estructura definida por la macro E<.Nm " +"TAILQ_HEAD.> Esta estructura contiene un par de punteros, uno al primer " +"elemento en la cola y el otro al último elemento en la cola. Los elementos " +"están doblemente enlazadas por lo que puede eliminarse un elemento " +"arbitrario sin recorrer la cola. Nuevos elementos pueden añadirse a la cola " +"después de un elemento existente, en la cabeza de la cola, o en el final de " +"la cola. Una estructura E<.Fa TAILQ_HEAD> se declara como sigue:" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n" +msgstr "TAILQ_HEAD(HEADNAME, TYPE) head;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_INIT> initializes the tail queue referenced by E<." +#| "Fa head>." +msgid "" +"The macro E<.Nm TAILQ_HEAD_INITIALIZER> evaluates to an initializer for the " +"tail queue E<.Fa head>." +msgstr "" +"La macro E<.Nm TAILQ_INIT> inicializa la cola referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_CONCAT> concatenates the tail queue headed by E<.Fa " +"head2> onto the end of the one headed by E<.Fa head1> removing all entries " +"from the former." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_ENTRY> declares a structure that connects the " +#| "elements in the tail queue." +msgid "" +"The macro E<.Nm TAILQ_EMPTY> evaluates to true if there are no items on the " +"tail queue." +msgstr "" +"La macro E<.Nm TAILQ_ENTRY> declara una estructura que conecta los elementos " +"en la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_ENTRY> declares a structure that connects the elements " +"in the tail queue." +msgstr "" +"La macro E<.Nm TAILQ_ENTRY> declara una estructura que conecta los elementos " +"en la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_INSERT_TAIL> inserts the new element E<.Fa elm> at " +#| "the end of the tail queue." +msgid "" +"The macro E<.Nm TAILQ_FIRST> returns the first item on the tail queue or " +"NULL if the tail queue is empty." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_TAIL> inserta el nuevo elemento E<.Fa elm> en el " +"final de la cola." + +#. .Pp +#. The macro +#. .Nm TAILQ_FOREACH_FROM +#. behaves identically to +#. .Nm TAILQ_FOREACH +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found TAILQ element and begins the loop at +#. .Fa var +#. instead of the first element in the TAILQ referenced by +#. .Fa head . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_FOREACH> traverses the tail queue referenced by E<.Fa " +"head> in the forward direction, assigning each element in turn to E<.Fa " +"var>. E<.Fa var> is set to E<.Dv NULL> if the loop completes normally, or " +"if there were no elements." +msgstr "" + +#. .Pp +#. The macro +#. .Nm TAILQ_FOREACH_REVERSE_FROM +#. behaves identically to +#. .Nm TAILQ_FOREACH_REVERSE +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found TAILQ element and begins the reverse loop at +#. .Fa var +#. instead of the last element in the TAILQ referenced by +#. .Fa head . +#. .Pp +#. The macros +#. .Nm TAILQ_FOREACH_SAFE +#. and +#. .Nm TAILQ_FOREACH_REVERSE_SAFE +#. traverse the list referenced by +#. .Fa head +#. in the forward or reverse direction respectively, +#. assigning each element in turn to +#. .Fa var . +#. However, unlike their unsafe counterparts, +#. .Nm TAILQ_FOREACH +#. and +#. .Nm TAILQ_FOREACH_REVERSE +#. permit to both remove +#. .Fa var +#. as well as free it from within the loop safely without interfering with the +#. traversal. +#. .Pp +#. The macro +#. .Nm TAILQ_FOREACH_FROM_SAFE +#. behaves identically to +#. .Nm TAILQ_FOREACH_SAFE +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found TAILQ element and begins the loop at +#. .Fa var +#. instead of the first element in the TAILQ referenced by +#. .Fa head . +#. .Pp +#. The macro +#. .Nm TAILQ_FOREACH_REVERSE_FROM_SAFE +#. behaves identically to +#. .Nm TAILQ_FOREACH_REVERSE_SAFE +#. when +#. .Fa var +#. is NULL, else it treats +#. .Fa var +#. as a previously found TAILQ element and begins the reverse loop at +#. .Fa var +#. instead of the last element in the TAILQ referenced by +#. .Fa head . +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_FOREACH_REVERSE> traverses the tail queue referenced " +"by E<.Fa head> in the reverse direction, assigning each element in turn to " +"E<.Fa var>." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_INIT> initializes the tail queue referenced by E<.Fa " +"head>." +msgstr "" +"La macro E<.Nm TAILQ_INIT> inicializa la cola referenciada por E<.Fa head>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_INSERT_HEAD> inserts the new element E<.Fa elm> at the " +"head of the tail queue." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_HEAD> inserta el nuevo elemento E<.Fa elm> en la " +"cabeza de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_INSERT_TAIL> inserts the new element E<.Fa elm> at the " +"end of the tail queue." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_TAIL> inserta el nuevo elemento E<.Fa elm> en el " +"final de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_INSERT_AFTER> inserts the new element E<.Fa elm> after " +"the element E<.Fa listelm>." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_AFTER> inserta el nuevo elemento E<.Fa elm> " +"después del elemento E<.Fa listelm>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_INSERT_BEFORE> inserts the new element E<.Fa elm> " +"before the element E<.Fa listelm>." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_BEFORE> inserta el nuevo elemento E<.Fa elm> " +"antes del elemento E<.Fa listelm>." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_LAST> returns the last item on the tail queue. If the " +"tail queue is empty the return value is E<.Dv NULL>." +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_REMOVE> removes the element E<.Fa elm> from the " +#| "tail queue." +msgid "" +"The macro E<.Nm TAILQ_NEXT> returns the next item on the tail queue, or NULL " +"if this item is the last." +msgstr "" +"La macro E<.Nm TAILQ_REMOVE> elimina el elemento E<.Fa elm> de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_REMOVE> removes the element E<.Fa elm> from the " +#| "tail queue." +msgid "" +"The macro E<.Nm TAILQ_PREV> returns the previous item on the tail queue, or " +"NULL if this item is the first." +msgstr "" +"La macro E<.Nm TAILQ_REMOVE> elimina el elemento E<.Fa elm> de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +msgid "" +"The macro E<.Nm TAILQ_REMOVE> removes the element E<.Fa elm> from the tail " +"queue." +msgstr "" +"La macro E<.Nm TAILQ_REMOVE> elimina el elemento E<.Fa elm> de la cola." + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "The macro E<.Nm TAILQ_INSERT_AFTER> inserts the new element E<.Fa elm> " +#| "after the element E<.Fa listelm>." +msgid "" +"The macro E<.Nm TAILQ_SWAP> swaps the contents of E<.Fa head1> and E<.Fa " +"head2>." +msgstr "" +"La macro E<.Nm TAILQ_INSERT_AFTER> inserta el nuevo elemento E<.Fa elm> " +"después del elemento E<.Fa listelm>." + +#. type: Ss +#: opensuse-leap-15-6 +#, no-wrap +msgid "Tail queue example" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "TAILQ_HEAD(tailhead, entry) head;\n" +#| "struct tailhead *headp;\t\t/* Tail queue head. */\n" +#| "struct entry {\n" +#| "\t...\n" +#| "\tTAILQ_ENTRY(entry) entries;\t/* Tail queue. */\n" +#| "\t...\n" +#| "} *n1, *n2, *np;\n" +msgid "" +"TAILQ_HEAD(tailhead, entry) head =\n" +" TAILQ_HEAD_INITIALIZER(head);\n" +"struct tailhead *headp;\t\t\t/* Tail queue head. */\n" +"struct entry {\n" +"\t...\n" +"\tTAILQ_ENTRY(entry) entries;\t/* Tail queue. */\n" +"\t...\n" +"} *n1, *n2, *n3, *np;\n" +msgstr "" +"TAILQ_HEAD(tailhead, entry) head;\n" +"struct tailhead *headp;\t\t/* Cabeza de la cola. */\n" +"struct entry {\n" +"\t...\n" +"\tTAILQ_ENTRY(entry) entries;\t/* Cola. */\n" +"\t...\n" +"} *n1, *n2, *np;\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "TAILQ_INIT(&head);\t\t\t/* Initialize the queue. */\n" +msgstr "TAILQ_INIT(&head);\t\t\t/* Inicializa la cola. */\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = malloc(sizeof(struct entry));\t/* Insert at the head. */\n" +"TAILQ_INSERT_HEAD(&head, n1, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en la cabeza. */\n" +"TAILQ_INSERT_HEAD(&head, n1, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n1 = malloc(sizeof(struct entry));\t/* Insert at the tail. */\n" +"TAILQ_INSERT_TAIL(&head, n1, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en el final. */\n" +"TAILQ_INSERT_TAIL(&head, n1, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"n2 = malloc(sizeof(struct entry));\t/* Insert after. */\n" +"TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" +msgstr "" +"n2 = malloc(sizeof(struct entry));\t/* Inserta después. */\n" +"TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "n1 = malloc(sizeof(struct entry));\t/* Insert at the head. */\n" +#| "TAILQ_INSERT_HEAD(&head, n1, entries);\n" +msgid "" +"n3 = malloc(sizeof(struct entry));\t/* Insert before. */\n" +"TAILQ_INSERT_BEFORE(n2, n3, entries);\n" +msgstr "" +"n1 = malloc(sizeof(struct entry));\t/* Inserta en la cabeza. */\n" +"TAILQ_INSERT_HEAD(&head, n1, entries);\n" + +#. /* Safe forward traversal. */ +#. TAILQ_FOREACH_SAFE(np, &head, entries, np_temp) { +#. np\->do_stuff(); +#. ... +#. TAILQ_REMOVE(&head, np, entries); +#. free(np); +#. } +#. type: Plain text +#: opensuse-leap-15-6 +#, no-wrap +msgid "" +"TAILQ_REMOVE(&head, n2, entries);\t/* Deletion. */\n" +"free(n2);\n" +"\t\t\t\t\t/* Forward traversal. */\n" +"TAILQ_FOREACH(np, &head, entries)\n" +"\tnp\\-E<gt> ...\n" +"\t\t\t\t\t/* Reverse traversal. */\n" +"TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)\n" +"\tnp\\-E<gt> ...\n" +"\t\t\t\t\t/* TailQ Deletion. */\n" +"while (!TAILQ_EMPTY(&head)) {\n" +"\tn1 = TAILQ_FIRST(&head);\n" +"\tTAILQ_REMOVE(&head, n1, entries);\n" +"\tfree(n1);\n" +"}\n" +"\t\t\t\t\t/* Faster TailQ Deletion. */\n" +"n1 = TAILQ_FIRST(&head);\n" +"while (n1 != NULL) {\n" +"\tn2 = TAILQ_NEXT(n1, entries);\n" +"\tfree(n1);\n" +"\tn1 = n2;\n" +"}\n" +msgstr "" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| "n2 = malloc(sizeof(struct entry));\t/* Insert before. */\n" +#| "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n" +#| "\t\t\t\t\t/* Forward traversal. */\n" +#| "for (np = head.cqh_first; np != (void *)&head; np = np-E<gt>entries.cqe_next)\n" +#| "\tnp-E<gt> ...\n" +#| "\t\t\t\t\t/* Reverse traversal. */\n" +#| "for (np = head.cqh_last; np != (void *)&head; np = np-E<gt>entries.cqe_prev)\n" +#| "\tnp-E<gt> ...\n" +#| "\t\t\t\t\t/* Delete. */\n" +#| "while (head.cqh_first != (void *)&head)\n" +#| "\tCIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n" +msgid "" +"TAILQ_INIT(&head);\n" +"n2 = malloc(sizeof(struct entry)); /* Insert before. */\n" +"CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n" +" /* Forward traversal. */\n" +"for (np = head.cqh_first; np != (void *)&head;\n" +" np = np\\-E<gt>entries.cqe_next)\n" +" np\\-E<gt> ...\n" +" /* Reverse traversal. */\n" +"for (np = head.cqh_last; np != (void *)&head; np = np\\-E<gt>entries.cqe_prev)\n" +" np\\-E<gt> ...\n" +" /* Delete. */\n" +"while (head.cqh_first != (void *)&head)\n" +" CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n" +msgstr "" +"n2 = malloc(sizeof(struct entry));\t/* Inserta antes. */\n" +"CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n" +"\t\t\t\t\t/* Recorrido hacia delante. */\n" +"for (np = head.cqh_first; np != (void *)&head; np = np-E<gt>entries.cqe_next)\n" +"\tnp-E<gt> ...\n" +"\t\t\t\t\t/* Recorrido hacia atrás. */\n" +"for (np = head.cqh_last; np != (void *)&head; np = np-E<gt>entries.cqe_prev)\n" +"\tnp-E<gt> ...\n" +"\t\t\t\t\t/* Elimina. */\n" +"while (head.cqh_first != (void *)&head)\n" +"\tCIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n" + +#. type: Sh +#: opensuse-leap-15-6 +#, no-wrap +msgid "CONFORMING TO" +msgstr "CONFORME A" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "The E<.Nm queue> functions first appeared in E<.Bx 4.4>." +msgid "" +"Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008. Present on the BSDs. E<.Nm " +"queue> functions first appeared in E<.Bx 4.4>." +msgstr "Las funciones E<.Nm queue> aparecieron por primera vez en E<.Bx 4.4>." + +#. type: Sh +#: opensuse-leap-15-6 +#, no-wrap +msgid "SEE ALSO" +msgstr "VÉASE TAMBIÉN" + +#. .Xr tree 3 +#. type: Plain text +#: opensuse-leap-15-6 +msgid "E<.Xr insque 3>" +msgstr "E<.Xr insque 3>" + +#. type: Sh +#: opensuse-leap-15-6 +#, no-wrap +msgid "COLOPHON" +msgstr "COLOFÓN" + +#. type: Plain text +#: opensuse-leap-15-6 +#, fuzzy +#| msgid "" +#| "This page is part of release 5.04 of the Linux E<.Em man-pages> project. " +#| "A description of the project, information about reporting bugs, and the " +#| "latest version of this page, can be found at \\%https://www.kernel.org/" +#| "doc/man\\-pages/." +msgid "" +"This page is part of release 4.16 of the Linux E<.Em man-pages> project. A " +"description of the project, information about reporting bugs, and the latest " +"version of this page, can be found at \\%https://www.kernel.org/doc/man\\-" +"pages/." +msgstr "" +"Esta página es parte de la versión 5.04 del proyecto Linux E<.Em man-pages>. " +"Puede encontrar una descripción del proyecto, información sobre cómo " +"informar errores y la última versión de esta página en \\%https://www.kernel." +"org/doc/man\\-pages/." |