summaryrefslogtreecommitdiffstats
path: root/po/es/archive/man3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /po/es/archive/man3
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/es/archive/man3')
-rw-r--r--po/es/archive/man3/getumask.3.po176
-rw-r--r--po/es/archive/man3/queue.3.po1870
-rw-r--r--po/es/archive/man3/stpcpy.3.po318
-rw-r--r--po/es/archive/man3/strcat.3.po409
4 files changed, 2773 insertions, 0 deletions
diff --git a/po/es/archive/man3/getumask.3.po b/po/es/archive/man3/getumask.3.po
new file mode 100644
index 00000000..0ecfddd0
--- /dev/null
+++ b/po/es/archive/man3/getumask.3.po
@@ -0,0 +1,176 @@
+# 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:00+0200\n"
+"PO-Revision-Date: 2004-07-25 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: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "GETUMASK"
+msgstr "GETUMASK"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2017-09-15"
+msgstr "15 Septiembre 2017"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "GNU"
+msgstr "GNU"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux Programmer's Manual"
+msgstr "Manual del Programador de Linux"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "NAME"
+msgstr "NOMBRE"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "getumask - get file creation mask"
+msgstr "getumask - obtiene la máscara de creación de ficheros"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SINOPSIS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
+msgstr "B<#define _GNU_SOURCE> /* Vea feature_test_macros(7) */"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "B<#include E<lt>sys/types.hE<gt>>"
+msgstr "B<#include E<lt>sys/types.hE<gt>>"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "B<#include E<lt>sys/stat.hE<gt>>"
+msgstr "B<#include E<lt>sys/stat.hE<gt>>"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "B<mode_t getumask(void);>"
+msgstr "B<mode_t getumask(void);>"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPCIÓN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This function returns the current file creation mask. It is equivalent to"
+msgstr ""
+"Esta función devuelve la máscara de creación de ficheros actual. Es "
+"equivalente a"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"mode_t getumask(void)\n"
+"{\n"
+" mode_t mask = umask( 0 );\n"
+" umask(mask);\n"
+" return mask;\n"
+"}\n"
+msgstr ""
+"mode_t getumask(void)\n"
+"{\n"
+" mode_t mask = umask( 0 );\n"
+" umask(mask);\n"
+" return mask;\n"
+"}\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"except that it is documented to be thread-safe (that is, shares a lock with "
+"the B<umask>(2) library call)."
+msgstr ""
+"salvo que está documentada como segura para hilos (esto es, comparte un "
+"bloqueo con la llamada de biblioteca I<umask>(2))."
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "CONFORMING TO"
+msgstr "CONFORME A"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "This is a vaporware GNU extension."
+msgstr ""
+"Esta es una extensión I<vaporware> (es decir, anunciada pero no "
+"implementada) de GNU."
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTAS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This function is documented in the glibc manual, but, as at glibc version "
+"2.24, it is not implemented on Linux. (See B<umask>(2) for a thread-safe "
+"method of discovering a process's umask.)"
+msgstr ""
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VÉASE TAMBIÉN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "B<umask>(2)"
+msgstr "B<umask>(2)"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "COLOPHON"
+msgstr "COLOFÓN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This page is part of release 4.16 of the Linux I<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 4.16 del proyecto Linux I<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/."
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/."
diff --git a/po/es/archive/man3/stpcpy.3.po b/po/es/archive/man3/stpcpy.3.po
new file mode 100644
index 00000000..f83ef4c2
--- /dev/null
+++ b/po/es/archive/man3/stpcpy.3.po
@@ -0,0 +1,318 @@
+# 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:24+0200\n"
+"PO-Revision-Date: 2004-08-09 19:55+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: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "STPCPY"
+msgstr "STPCPY"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2016-03-15"
+msgstr "15 Marzo 2016"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "GNU"
+msgstr "GNU"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux Programmer's Manual"
+msgstr "Manual del Programador de Linux"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "NAME"
+msgstr "NOMBRE"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "stpcpy - copy a string returning a pointer to its end"
+msgstr "stpcpy - copia una cadena devolviendo un apuntador a su final"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SINOPSIS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "B<#include E<lt>string.hE<gt>>\n"
+msgstr "B<#include E<lt>string.hE<gt>>\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "B<char *stpcpy(char *>I<dest>B<, const char *>I<src>B<);>\n"
+msgstr "B<char *stpcpy(char *>I<dest>B<, const char *>I<src>B<);>\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
+msgstr ""
+"Requisitos de Macros de Prueba de Características para glibc (véase "
+"B<feature_test_macros>(7)):"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "B<stpcpy>():"
+msgstr "B<stpcpy>():"
+
+#. type: TP
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Since glibc 2.10:"
+msgstr "Desde glibc 2.10:"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
+msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
+
+#. type: TP
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Before glibc 2.10:"
+msgstr "Antes de glibc 2.10:"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "_GNU_SOURCE"
+msgstr "_GNU_SOURCE"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPCIÓN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, fuzzy
+#| msgid ""
+#| "The B<stpcpy()> function copies the string pointed to by I<src> "
+#| "(including the terminating `\\e0' character) to the array pointed to by "
+#| "I<dest>. The strings may not overlap, and the destination string I<dest> "
+#| "must be large enough to receive the copy."
+msgid ""
+"The B<stpcpy>() function copies the string pointed to by I<src> (including "
+"the terminating null byte (\\(aq\\e0\\(aq)) to the array pointed to by "
+"I<dest>. The strings may not overlap, and the destination string I<dest> "
+"must be large enough to receive the copy."
+msgstr ""
+"La función B<stpcpy()> copia la cadena apuntada por I<src> (la cual incluye "
+"el carácter `\\e0' ) a la matriz apuntada por I<dest>. Las cadenas no deben "
+"solaparse, y la cadena destino I<dest> tiene que ser lo suficientemente "
+"larga para recibir la copia."
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "VALOR DEVUELTO"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, fuzzy
+#| msgid ""
+#| "B<stpcpy()> returns a pointer to the B<end> of the string I<dest> (that "
+#| "is, the address of the terminating null character) rather than the "
+#| "beginning."
+msgid ""
+"B<stpcpy>() returns a pointer to the B<end> of the string I<dest> (that is, "
+"the address of the terminating null byte) rather than the beginning."
+msgstr ""
+"B<stpcpy()> devuelve un apuntador al B<final> de la cadena I<dest> (esto es, "
+"la dirección del carácter terminador nulo) y no al comienzo."
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "ATRIBUTOS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"For an explanation of the terms used in this section, see B<attributes>(7)."
+msgstr ""
+"Para obtener una explicación de los términos usados en esta sección, véase "
+"B<attributes>(7)."
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Interface"
+msgstr "Interfaz"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Attribute"
+msgstr "Atributo"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Value"
+msgstr "Valor"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "B<stpcpy>()"
+msgstr "B<stpcpy>()"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Thread safety"
+msgstr "Seguridad del hilo"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "MT-Safe"
+msgstr "Multi-hilo seguro"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "CONFORMING TO"
+msgstr "CONFORME A"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This function was added to POSIX.1-2008. Before that, it was not part of "
+"the C or POSIX.1 standards, nor customary on UNIX systems. It first "
+"appeared at least as early as 1986, in the Lattice C AmigaDOS compiler, then "
+"in the GNU fileutils and GNU textutils in 1989, and in the GNU C library by "
+"1992. It is also present on the BSDs."
+msgstr ""
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "BUGS"
+msgstr "ERRORES"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "This function may overrun the buffer I<dest>."
+msgstr ""
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "EJEMPLO"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"For example, this program uses B<stpcpy>() to concatenate B<foo> and B<bar> "
+"to produce B<foobar>, which it then prints."
+msgstr ""
+"Por ejemplo, este programa usa B<stpcpy>() para concatenar B<foo> y B<bar> "
+"para prodcir B<foobar>, que entonces se imprime."
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(void)\n"
+"{\n"
+" char buffer[20];\n"
+" char *to = buffer;\n"
+msgstr ""
+"int\n"
+"main(void)\n"
+"{\n"
+" char buffer[20];\n"
+" char *to = buffer;\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" to = stpcpy(to, \"foo\");\n"
+" to = stpcpy(to, \"bar\");\n"
+" printf(\"%s\\en\", buffer);\n"
+"}\n"
+msgstr ""
+" to = stpcpy(to, \"foo\");\n"
+" to = stpcpy(to, \"bar\");\n"
+" printf(\"%s\\en\", buffer);\n"
+"}\n"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VÉASE TAMBIÉN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<stpncpy>(3), "
+"B<strcpy>(3), B<string>(3), B<wcpcpy>(3)"
+msgstr ""
+"B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<stpncpy>(3), "
+"B<strcpy>(3), B<string>(3), B<wcpcpy>(3)"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "COLOPHON"
+msgstr "COLOFÓN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This page is part of release 4.16 of the Linux I<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 4.16 del proyecto Linux I<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/."
diff --git a/po/es/archive/man3/strcat.3.po b/po/es/archive/man3/strcat.3.po
new file mode 100644
index 00000000..ec8a3ee9
--- /dev/null
+++ b/po/es/archive/man3/strcat.3.po
@@ -0,0 +1,409 @@
+# 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:24+0200\n"
+"PO-Revision-Date: 2021-01-30 18:00+0100\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: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "STRCAT"
+msgstr "STRCAT"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2017-09-15"
+msgstr "15 Septiembre 2017"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "GNU"
+msgstr "GNU"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux Programmer's Manual"
+msgstr "Manual del Programador de Linux"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "NAME"
+msgstr "NOMBRE"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "strcat, strncat - concatenate two strings"
+msgstr "strcat, strncat - concatena dos cadenas"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SINOPSIS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "B<#include E<lt>string.hE<gt>>\n"
+msgstr "B<#include E<lt>string.hE<gt>>\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "B<char *strcat(char *>I<dest>B<, const char *>I<src>B<);>\n"
+msgstr "B<char *strcat(char *>I<dest>B<, const char *>I<src>B<);>\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "B<char *strncat(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
+msgstr "B<char *strncat(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPCIÓN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, fuzzy
+#| msgid ""
+#| "The B<strcat()> function appends the I<src> string to the I<dest> string "
+#| "overwriting the `\\e0' character at the end of I<dest>, and then adds a "
+#| "terminating `\\e0' character. The strings may not overlap, and the "
+#| "I<dest> string must have enough space for the result."
+msgid ""
+"The B<strcat>() function appends the I<src> string to the I<dest> string, "
+"overwriting the terminating null byte (\\(aq\\e0\\(aq) at the end of "
+"I<dest>, and then adds a terminating null byte. The strings may not "
+"overlap, and the I<dest> string must have enough space for the result. If "
+"I<dest> is not large enough, program behavior is unpredictable; I<buffer "
+"overruns are a favorite avenue for attacking secure programs>."
+msgstr ""
+"La función B<strcat()> une la cadena I<src> a la cadena I<dest> "
+"sobreescribiendo el carácter `\\e0' al final de I<dest>, y entonces añade un "
+"carácter final `\\e0'. Las cadenas no deben solaparse, y la cadena I<dest> "
+"debe tener suficiente espacio para el resultado."
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "The B<strncat>() function is similar, except that"
+msgstr ""
+
+#. type: IP
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "*"
+msgstr "*"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "it will use at most I<n> bytes from I<src>; and"
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"I<src> does not need to be null-terminated if it contains I<n> or more bytes."
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"As with B<strcat>(), the resulting string in I<dest> is always null-"
+"terminated."
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"If I<src> contains I<n> or more bytes, B<strncat>() writes I<n+1> bytes to "
+"I<dest> (I<n> from I<src> plus the terminating null byte). Therefore, the "
+"size of I<dest> must be at least I<strlen(dest)+n+1>."
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "A simple implementation of B<strncat>() might be:"
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"char *\n"
+"strncat(char *dest, const char *src, size_t n)\n"
+"{\n"
+" size_t dest_len = strlen(dest);\n"
+" size_t i;\n"
+msgstr ""
+"char *\n"
+"strncat(char *dest, const char *src, size_t n)\n"
+"{\n"
+" size_t dest_len = strlen(dest);\n"
+" size_t i;\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (i = 0 ; i E<lt> n && src[i] != \\(aq\\e0\\(aq ; i++)\n"
+" dest[dest_len + i] = src[i];\n"
+" dest[dest_len + i] = \\(aq\\e0\\(aq;\n"
+msgstr ""
+" for (i = 0 ; i E<lt> n && src[i] != \\(aq\\e0\\(aq ; i++)\n"
+" dest[dest_len + i] = src[i];\n"
+" dest[dest_len + i] = \\(aq\\e0\\(aq;\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" return dest;\n"
+"}\n"
+msgstr ""
+" return dest;\n"
+"}\n"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "VALOR DEVUELTO"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"The B<strcat>() and B<strncat>() functions return a pointer to the "
+"resulting string I<dest>."
+msgstr ""
+"Las funciones B<strcat>() y B<strncat>() devuelven un puntero que apunta a "
+"la cadena resultante I<dest>."
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "ATRIBUTOS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"For an explanation of the terms used in this section, see B<attributes>(7)."
+msgstr ""
+"Para obtener una explicación de los términos usados en esta sección, véase "
+"B<attributes>(7)."
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Interface"
+msgstr "Interfaz"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Attribute"
+msgstr "Atributo"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Value"
+msgstr "Valor"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"B<strcat>(),\n"
+"B<strncat>()"
+msgstr ""
+"B<strcat>(),\n"
+"B<strncat>()"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Thread safety"
+msgstr "Seguridad del hilo"
+
+#. type: tbl table
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "MT-Safe"
+msgstr "Multi-hilo seguro"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "CONFORMING TO"
+msgstr "CONFORME A"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid "POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD."
+msgstr "POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD."
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTAS"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"Some systems (the BSDs, Solaris, and others) provide the following function:"
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid " size_t strlcat(char *dest, const char *src, size_t size);\n"
+msgstr " size_t strlcat(char *dest, const char *src, size_t size);\n"
+
+#. https://lwn.net/Articles/506530/
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This function appends the null-terminated string I<src> to the string "
+"I<dest>, copying at most I<size-strlen(dest)-1> from I<src>, and adds a "
+"terminating null byte to the result, I<unless> I<size> is less than "
+"I<strlen(dest)>. This function fixes the buffer overrun problem of "
+"B<strcat>(), but the caller must still handle the possibility of data loss "
+"if I<size> is too small. The function returns the length of the string "
+"B<strlcat>() tried to create; if the return value is greater than or equal "
+"to I<size>, data loss occurred. If data loss matters, the caller I<must> "
+"either check the arguments before the call, or test the function return "
+"value. B<strlcat>() is not present in glibc and is not standardized by "
+"POSIX, but is available on Linux via the I<libbsd> library."
+msgstr ""
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "EJEMPLO"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"Because B<strcat>() and B<strncat>() must find the null byte that "
+"terminates the string I<dest> using a search that starts at the beginning of "
+"the string, the execution time of these functions scales according to the "
+"length of the string I<dest>. This can be demonstrated by running the "
+"program below. (If the goal is to concatenate many strings to one target, "
+"then manually copying the bytes from each source string while maintaining a "
+"pointer to the end of the target string will provide better performance.)"
+msgstr ""
+
+#. type: SS
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Program source"
+msgstr "Código fuente"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>time.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+msgstr ""
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>time.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+"#define LIM 4000000\n"
+" int j;\n"
+" char p[LIM];\n"
+" time_t base;\n"
+msgstr ""
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" base = time(NULL);\n"
+" p[0] = \\(aq\\e0\\(aq;\n"
+msgstr ""
+" base = time(NULL);\n"
+" p[0] = \\(aq\\e0\\(aq;\n"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> LIM; j++) {\n"
+" if ((j % 10000) == 0)\n"
+" printf(\"%d %ld\\en\", j, (long) (time(NULL) - base));\n"
+" strcat(p, \"a\");\n"
+" }\n"
+"}\n"
+msgstr ""
+" for (j = 0; j E<lt> LIM; j++) {\n"
+" if ((j % 10000) == 0)\n"
+" printf(\"%d %ld\\en\", j, (long) (time(NULL) - base));\n"
+" strcat(p, \"a\");\n"
+" }\n"
+"}\n"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VÉASE TAMBIÉN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<strcpy>(3), B<string>(3), "
+"B<strncpy>(3), B<wcscat>(3), B<wcsncat>(3)"
+msgstr ""
+"B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<strcpy>(3), B<string>(3), "
+"B<strncpy>(3), B<wcscat>(3), B<wcsncat>(3)"
+
+#. type: SH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "COLOPHON"
+msgstr "COLOFÓN"
+
+#. type: Plain text
+#: opensuse-leap-15-6
+msgid ""
+"This page is part of release 4.16 of the Linux I<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 4.16 del proyecto Linux I<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/."