summaryrefslogtreecommitdiffstats
path: root/po/fr/man3/pthread_create.3.po
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/fr/man3/pthread_create.3.po
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/fr/man3/pthread_create.3.po')
-rw-r--r--po/fr/man3/pthread_create.3.po1421
1 files changed, 1421 insertions, 0 deletions
diff --git a/po/fr/man3/pthread_create.3.po b/po/fr/man3/pthread_create.3.po
new file mode 100644
index 00000000..dc069f78
--- /dev/null
+++ b/po/fr/man3/pthread_create.3.po
@@ -0,0 +1,1421 @@
+# French translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Christophe Blaess <https://www.blaess.fr/christophe/>, 1996-2003.
+# Stéphan Rafin <stephan.rafin@laposte.net>, 2002.
+# Thierry Vignaud <tvignaud@mandriva.com>, 1999, 2002.
+# François Micaux, 2002.
+# Alain Portal <aportal@univ-montp2.fr>, 2003-2008.
+# Jean-Philippe Guérard <fevrier@tigreraye.org>, 2005-2006.
+# Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, 2006-2007.
+# Julien Cristau <jcristau@debian.org>, 2006-2007.
+# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006-2008.
+# Nicolas François <nicolas.francois@centraliens.net>, 2006-2008.
+# Florentin Duneau <fduneau@gmail.com>, 2006-2010.
+# Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006.
+# Denis Barbier <barbier@debian.org>, 2006, 2010.
+# David Prévot <david@tilapin.org>, 2010, 2012.
+# Frédéric Hantrais <fhantrais@gmail.com>, 2013, 2014.
+# Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-01 17:04+0100\n"
+"PO-Revision-Date: 2023-12-04 19:19+0100\n"
+"Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"Language: fr\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 2.0\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "pthread_create"
+msgstr "pthread_create"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2024-02-12"
+msgstr "12 février 2024"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Pages du manuel de Linux 6.06"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr "NOM"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "pthread_create - create a new thread"
+msgstr "pthread_create – Créer un nouveau thread"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr "BIBLIOTHÈQUE"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX threads library (I<libpthread>, I<-lpthread>)"
+msgstr "Bibliothèque de threads POSIX (I<libpthread>, I<-lpthread>)"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>pthread.hE<gt>>\n"
+msgstr "B<#include E<lt>pthread.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<int pthread_create(pthread_t *restrict >I<thread>B<,>\n"
+"B< const pthread_attr_t *restrict >I<attr>B<,>\n"
+"B< void *(*>I<start_routine>B<)(void *),>\n"
+"B< void *restrict >I<arg>B<);>\n"
+msgstr ""
+"B<int pthread_create(pthread_t *restrict >I<thread>B<,>\n"
+"B< const pthread_attr_t *restrict >I<attr>B<,>\n"
+"B< void *(*>I<start_routine>B<)(void *),>\n"
+"B< void *restrict >I<arg>B<);>\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPTION"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<pthread_create>() function starts a new thread in the calling "
+"process. The new thread starts execution by invoking I<start_routine>(); "
+"I<arg> is passed as the sole argument of I<start_routine>()."
+msgstr ""
+"La fonction B<pthread_create>() démarre un nouveau thread (processus léger) "
+"dans le processus appelant. Le nouveau thread commence par appeler "
+"I<start_routine>()\\ ; I<arg> est passé comme unique argument de "
+"I<start_routine>()."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The new thread terminates in one of the following ways:"
+msgstr "Le nouveau thread se termine d'une des manières suivantes\\ :"
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "-"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"It calls B<pthread_exit>(3), specifying an exit status value that is "
+"available to another thread in the same process that calls "
+"B<pthread_join>(3)."
+msgstr ""
+"Il appelle B<pthread_exit>(3), en indiquant une valeur de sortie qui sera "
+"disponible pour un autre thread du même processus qui appelle "
+"B<pthread_join>(3)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"It returns from I<start_routine>(). This is equivalent to calling "
+"B<pthread_exit>(3) with the value supplied in the I<return> statement."
+msgstr ""
+"Il sort de la routine I<start_routine>(). C'est équivalent à appeler "
+"B<pthread_exit>(3) avec la valeur fournie à l'instruction I<return>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "It is canceled (see B<pthread_cancel>(3))."
+msgstr "Il est annulé (voir B<pthread_cancel>(3))."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Any of the threads in the process calls B<exit>(3), or the main thread "
+"performs a return from I<main>(). This causes the termination of all "
+"threads in the process."
+msgstr ""
+"Un des threads du processus appelle B<exit>(3) ou le thread principal sort "
+"de la routine I<main>() ce qui entraîne l'arrêt de tous les threads du "
+"processus."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<attr> argument points to a I<pthread_attr_t> structure whose contents "
+"are used at thread creation time to determine attributes for the new thread; "
+"this structure is initialized using B<pthread_attr_init>(3) and related "
+"functions. If I<attr> is NULL, then the thread is created with default "
+"attributes."
+msgstr ""
+"L'argument I<attr> pointe sur une structure I<pthread_attr_t> dont le "
+"contenu est utilisé pendant la création des threads pour déterminer les "
+"attributs du nouveau thread. Cette structure est initialisée avec "
+"B<pthread_attr_init>(3) et les fonctions similaires. Si I<attr> est NULL, "
+"alors le thread est créé avec les attributs par défaut."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before returning, a successful call to B<pthread_create>() stores the ID of "
+"the new thread in the buffer pointed to by I<thread>; this identifier is "
+"used to refer to the thread in subsequent calls to other pthreads functions."
+msgstr ""
+"Avant de rendre la main, un appel réussi à B<pthread_create>() stocke "
+"l'identifiant du nouveau thread dans le tampon pointé par I<thread>. Cet "
+"identifiant est utilisé pour se référer à ce thread dans les appels "
+"ultérieurs aux autres fonctions de pthreads."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The new thread inherits a copy of the creating thread's signal mask "
+"(B<pthread_sigmask>(3)). The set of pending signals for the new thread is "
+"empty (B<sigpending>(2)). The new thread does not inherit the creating "
+"thread's alternate signal stack (B<sigaltstack>(2))."
+msgstr ""
+"Le nouveau thread hérite d'une copie du masque de signal du thread créateur "
+"(B<pthread_sigmask>(3)). L'ensemble des signaux en attente pour le nouveau "
+"thread est vide (B<sigpending>(2)). Le nouveau thread n'hérite pas de la "
+"pile spécifique de signaux (B<sigaltstack>(2)) du thread appelant."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The new thread inherits the calling thread's floating-point environment "
+"(B<fenv>(3))."
+msgstr ""
+"Le nouveau thread hérite de l'environnement en virgule flottante "
+"(B<fenv>(3)) du thread appelant."
+
+#. CLOCK_THREAD_CPUTIME_ID in clock_gettime(2)
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The initial value of the new thread's CPU-time clock is 0 (see "
+"B<pthread_getcpuclockid>(3))."
+msgstr ""
+"La valeur initiale de l'horloge CPU du nouveau thread est 0 (voir "
+"B<pthread_getcpuclockid>(3))."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Linux-specific details"
+msgstr "Détails spécifiques à Linux"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The new thread inherits copies of the calling thread's capability sets (see "
+"B<capabilities>(7)) and CPU affinity mask (see B<sched_setaffinity>(2))."
+msgstr ""
+"Le nouveau thread hérite de copies des ensembles des capacités (voir "
+"B<capabilities>(7)) et des masques d'affinité CPU (consultez "
+"B<sched_setaffinity>(2)) du thread appelant."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "VALEUR RENVOYÉE"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, B<pthread_create>() returns 0; on error, it returns an error "
+"number, and the contents of I<*thread> are undefined."
+msgstr ""
+"En cas de réussite, B<pthread_create>() renvoie B<0> ; en cas d'erreur, elle "
+"renvoie un numéro d'erreur, et le contenu de I<*thread> est indéfini."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr "ERREURS"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EAGAIN>"
+msgstr "B<EAGAIN>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Insufficient resources to create another thread."
+msgstr "Ressources insuffisantes pour créer un nouveau thread."
+
+#. NOTE! The following should match the description in fork(2)
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A system-imposed limit on the number of threads was encountered. There are "
+"a number of limits that may trigger this error: the B<RLIMIT_NPROC> soft "
+"resource limit (set via B<setrlimit>(2)), which limits the number of "
+"processes and threads for a real user ID, was reached; the kernel's system-"
+"wide limit on the number of processes and threads, I</proc/sys/kernel/"
+"threads-max>, was reached (see B<proc>(5)); or the maximum number of PIDs, "
+"I</proc/sys/kernel/pid_max>, was reached (see B<proc>(5))."
+msgstr ""
+"Une limite système sur le nombre de threads a été atteinte. Plusieurs "
+"limites pourraient déclencher cette erreur : la limite de ressources souple "
+"B<RLIMIT_NPROC> (définie à l’aide B<setrlimit>(2)), qui limite le nombre de "
+"processus et threads par identifiant d’utilisateur réel, a été atteinte ; "
+"la limite système imposée par le noyau sur le nombre total de processus et "
+"threads, I</proc/sys/kernel/threads-max>, a été atteinte (consultez "
+"B<proc>(5)) ; ou le nombre maximal de PID, I</proc/sys/kernel/pid_max>, a "
+"été atteint (consultez B<proc>(5))."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr "B<EINVAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Invalid settings in I<attr>."
+msgstr "Paramètres incorrects dans I<attr>."
+
+#. FIXME . Test the following
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EPERM>"
+msgstr "B<EPERM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"No permission to set the scheduling policy and parameters specified in "
+"I<attr>."
+msgstr ""
+"Permissions insuffisantes pour définir la politique d'ordonnancement et les "
+"paramètres spécifiés dans I<attr>."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "ATTRIBUTS"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For an explanation of the terms used in this section, see B<attributes>(7)."
+msgstr ""
+"Pour une explication des termes utilisés dans cette section, consulter "
+"B<attributes>(7)."
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Interface"
+msgstr "Interface"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Attribute"
+msgstr "Attribut"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Value"
+msgstr "Valeur"
+
+#. type: tbl table
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ".na\n"
+msgstr ".na\n"
+
+#. type: tbl table
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ".nh\n"
+msgstr ".nh\n"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<pthread_create>()"
+msgstr "B<pthread_create>()"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Thread safety"
+msgstr "Sécurité des threads"
+
+#. type: tbl table
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "MT-Safe"
+msgstr "MT-Safe"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDS"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2008."
+msgstr "POSIX.1-2008."
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "HISTORIQUE"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2001."
+msgstr "POSIX.1-2001."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTES"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"See B<pthread_self>(3) for further information on the thread ID returned in "
+"I<*thread> by B<pthread_create>(). Unless real-time scheduling policies are "
+"being employed, after a call to B<pthread_create>(), it is indeterminate "
+"which thread\\[em]the caller or the new thread\\[em]will next execute."
+msgstr ""
+"Consultez B<pthread_self>(3) pour des informations plus détaillées sur "
+"l'identifiant de thread renvoyé dans I<*thread> par B<pthread_create>(). "
+"Sauf si une politique d'ordonnancement temps-réel est employée, après un "
+"appel à B<pthread_create>(), on ne sait pas quel thread \\[em] l'appelant ou "
+"le nouveau thread \\[em] sera exécuté ensuite."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A thread may either be I<joinable> or I<detached>. If a thread is joinable, "
+"then another thread can call B<pthread_join>(3) to wait for the thread to "
+"terminate and fetch its exit status. Only when a terminated joinable thread "
+"has been joined are the last of its resources released back to the system. "
+"When a detached thread terminates, its resources are automatically released "
+"back to the system: it is not possible to join with the thread in order to "
+"obtain its exit status. Making a thread detached is useful for some types "
+"of daemon threads whose exit status the application does not need to care "
+"about. By default, a new thread is created in a joinable state, unless "
+"I<attr> was set to create the thread in a detached state (using "
+"B<pthread_attr_setdetachstate>(3))."
+msgstr ""
+"Un thread peut être dans un état soit joignable (I<joinable>), soit détaché "
+"(I<detached>). Si un thread est joignable, un autre thread peut appeler "
+"B<pthread_join>(3) pour attendre que ce thread se termine et récupérer sa "
+"valeur de sortie. Ce n'est que quand un thread terminé et joignable a été "
+"joint que ses ressources sont rendues au système. Quand un thread détaché se "
+"termine, ses ressources sont automatiquement rendues au système\\ : il n'est "
+"pas possible de joindre un tel thread afin d'en obtenir la valeur de sortie. "
+"Mettre un thread dans l'état détaché est pratique pour certains types de "
+"threads de démon dont l'application n'a pas à se préoccuper de la valeur de "
+"sortie. Par défaut, un nouveau thread est créé dans l'état joignable, à "
+"moins qu'I<attr> n'ait été modifié (avec B<pthread_attr_setdetachstate>(3)) "
+"pour créer le thread dans un état détaché."
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, fuzzy
+#| msgid ""
+#| "Under the NPTL threading implementation, if the B<RLIMIT_STACK> soft "
+#| "resource limit I<at the time the program started> has any value other "
+#| "than \"unlimited\", then it determines the default stack size of new "
+#| "threads. Using B<pthread_attr_setstacksize>(3), the stack size attribute "
+#| "can be explicitly set in the I<attr> argument used to create a thread, in "
+#| "order to obtain a stack size other than the default. If the "
+#| "B<RLIMIT_STACK> resource limit is set to \"unlimited\", a per-"
+#| "architecture value is used for the stack size. Here is the value for a "
+#| "few architectures:"
+msgid ""
+"Under the NPTL threading implementation, if the B<RLIMIT_STACK> soft "
+"resource limit I<at the time the program started> has any value other than "
+"\"unlimited\", then it determines the default stack size of new threads. "
+"Using B<pthread_attr_setstacksize>(3), the stack size attribute can be "
+"explicitly set in the I<attr> argument used to create a thread, in order to "
+"obtain a stack size other than the default. If the B<RLIMIT_STACK> resource "
+"limit is set to \"unlimited\", a per-architecture value is used for the "
+"stack size: 2 MB on most architectures; 4 MB on POWER and Sparc-64."
+msgstr ""
+"Avec l'implémentation NPTL, si la limite souple B<RLIMIT_STACK> a une valeur "
+"autre qu'«\\ unlimited\\ » I<au moment où le programme a démarré>, elle "
+"détermine la taille de la pile par défaut pour les nouveaux threads. Afin "
+"d'obtenir une taille de pile différente de la valeur par défaut, il faut "
+"appeler B<pthread_attr_setstacksize>(3) avec la valeur souhaitée sur "
+"l'argument I<attr> utilisé pour créer un thread. Si la limite de ressources "
+"B<RLIMIT_STACK> a la valeur «\\ unlimited\\ », une valeur dépendant de "
+"l'architecture est utilisée pour la taille de la pile. Voici cette valeur "
+"pour quelques architectures :"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr "BOGUES"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In the obsolete LinuxThreads implementation, each of the threads in a "
+"process has a different process ID. This is in violation of the POSIX "
+"threads specification, and is the source of many other nonconformances to "
+"the standard; see B<pthreads>(7)."
+msgstr ""
+"Dans l'implémentation obsolète LinuxThreads, chacun des threads dans un "
+"processus a un identifiant de processus différent, ce qui est en violation "
+"des spécifications POSIX sur les threads et est la cause de nombreuses non-"
+"conformité au standard. Consultez B<pthreads>(7)."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "EXEMPLES"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The program below demonstrates the use of B<pthread_create>(), as well as a "
+"number of other functions in the pthreads API."
+msgstr ""
+"Le programme ci-dessous montre l'utilisation de B<pthread_create>(), ainsi "
+"qu'un certain nombre d'autres fonctions de l'API pthreads."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In the following run, on a system providing the NPTL threading "
+"implementation, the stack size defaults to the value given by the \"stack "
+"size\" resource limit:"
+msgstr ""
+"Lors de l'exécution suivante, sur un système avec l'implémentation NPTL, la "
+"taille de la pile vaut par défaut la valeur renvoyée par la limite de la "
+"ressource «\\ stack size\\ » (taille de la pile)\\ :"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$B< ulimit -s>\n"
+"8192 # The stack size limit is 8 MB (0x800000 bytes)\n"
+"$B< ./a.out hola salut servus>\n"
+"Thread 1: top of stack near 0xb7dd03b8; argv_string=hola\n"
+"Thread 2: top of stack near 0xb75cf3b8; argv_string=salut\n"
+"Thread 3: top of stack near 0xb6dce3b8; argv_string=servus\n"
+"Joined with thread 1; returned value was HOLA\n"
+"Joined with thread 2; returned value was SALUT\n"
+"Joined with thread 3; returned value was SERVUS\n"
+msgstr ""
+"$B< ulimit -s>\n"
+"8192 # The stack size limit is 8 MB (0x800000 bytes)\n"
+"$B< ./a.out hola salut servus>\n"
+"Thread 1: top of stack near 0xb7dd03b8; argv_string=hola\n"
+"Thread 2: top of stack near 0xb75cf3b8; argv_string=salut\n"
+"Thread 3: top of stack near 0xb6dce3b8; argv_string=servus\n"
+"Joined with thread 1; returned value was HOLA\n"
+"Joined with thread 2; returned value was SALUT\n"
+"Joined with thread 3; returned value was SERVUS\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In the next run, the program explicitly sets a stack size of 1\\ MB (using "
+"B<pthread_attr_setstacksize>(3)) for the created threads:"
+msgstr ""
+"Lors de l'exécution suivante, le programme définit explicitement une taille "
+"de pile de 1\\ Mo (avec B<pthread_attr_setstacksize>(3)) pour les threads "
+"créés\\ :"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$B< ./a.out -s 0x100000 hola salut servus>\n"
+"Thread 1: top of stack near 0xb7d723b8; argv_string=hola\n"
+"Thread 2: top of stack near 0xb7c713b8; argv_string=salut\n"
+"Thread 3: top of stack near 0xb7b703b8; argv_string=servus\n"
+"Joined with thread 1; returned value was HOLA\n"
+"Joined with thread 2; returned value was SALUT\n"
+"Joined with thread 3; returned value was SERVUS\n"
+msgstr ""
+"$B< ./a.out -s 0x100000 hola salut servus>\n"
+"Thread 1: top of stack near 0xb7d723b8; argv_string=hola\n"
+"Thread 2: top of stack near 0xb7c713b8; argv_string=salut\n"
+"Thread 3: top of stack near 0xb7b703b8; argv_string=servus\n"
+"Joined with thread 1; returned value was HOLA\n"
+"Joined with thread 2; returned value was SALUT\n"
+"Joined with thread 3; returned value was SERVUS\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr "Source du programme"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>ctype.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"#define handle_error_en(en, msg) \\e\n"
+" do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+"\\&\n"
+"#define handle_error(msg) \\e\n"
+" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+"\\&\n"
+"struct thread_info { /* Used as argument to thread_start() */\n"
+" pthread_t thread_id; /* ID returned by pthread_create() */\n"
+" int thread_num; /* Application-defined thread # */\n"
+" char *argv_string; /* From command-line argument */\n"
+"};\n"
+"\\&\n"
+"/* Thread start function: display address near top of our stack,\n"
+" and return upper-cased copy of argv_string. */\n"
+"\\&\n"
+"static void *\n"
+"thread_start(void *arg)\n"
+"{\n"
+" struct thread_info *tinfo = arg;\n"
+" char *uargv;\n"
+"\\&\n"
+" printf(\"Thread %d: top of stack near %p; argv_string=%s\\en\",\n"
+" tinfo-E<gt>thread_num, (void *) &tinfo, tinfo-E<gt>argv_string);\n"
+"\\&\n"
+" uargv = strdup(tinfo-E<gt>argv_string);\n"
+" if (uargv == NULL)\n"
+" handle_error(\"strdup\");\n"
+"\\&\n"
+" for (char *p = uargv; *p != \\[aq]\\e0\\[aq]; p++)\n"
+" *p = toupper(*p);\n"
+"\\&\n"
+" return uargv;\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int s, opt;\n"
+" void *res;\n"
+" size_t num_threads;\n"
+" ssize_t stack_size;\n"
+" pthread_attr_t attr;\n"
+" struct thread_info *tinfo;\n"
+"\\&\n"
+" /* The \"-s\" option specifies a stack size for our threads. */\n"
+"\\&\n"
+" stack_size = -1;\n"
+" while ((opt = getopt(argc, argv, \"s:\")) != -1) {\n"
+" switch (opt) {\n"
+" case \\[aq]s\\[aq]:\n"
+" stack_size = strtoul(optarg, NULL, 0);\n"
+" break;\n"
+"\\&\n"
+" default:\n"
+" fprintf(stderr, \"Usage: %s [-s stack-size] arg...\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+"\\&\n"
+" num_threads = argc - optind;\n"
+"\\&\n"
+" /* Initialize thread creation attributes. */\n"
+"\\&\n"
+" s = pthread_attr_init(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_init\");\n"
+"\\&\n"
+" if (stack_size E<gt> 0) {\n"
+" s = pthread_attr_setstacksize(&attr, stack_size);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_setstacksize\");\n"
+" }\n"
+"\\&\n"
+" /* Allocate memory for pthread_create() arguments. */\n"
+"\\&\n"
+" tinfo = calloc(num_threads, sizeof(*tinfo));\n"
+" if (tinfo == NULL)\n"
+" handle_error(\"calloc\");\n"
+"\\&\n"
+" /* Create one thread for each command-line argument. */\n"
+"\\&\n"
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" tinfo[tnum].thread_num = tnum + 1;\n"
+" tinfo[tnum].argv_string = argv[optind + tnum];\n"
+"\\&\n"
+" /* The pthread_create() call stores the thread ID into\n"
+" corresponding element of tinfo[]. */\n"
+"\\&\n"
+" s = pthread_create(&tinfo[tnum].thread_id, &attr,\n"
+" &thread_start, &tinfo[tnum]);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_create\");\n"
+" }\n"
+"\\&\n"
+" /* Destroy the thread attributes object, since it is no\n"
+" longer needed. */\n"
+"\\&\n"
+" s = pthread_attr_destroy(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_destroy\");\n"
+"\\&\n"
+" /* Now join with each thread, and display its returned value. */\n"
+"\\&\n"
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" s = pthread_join(tinfo[tnum].thread_id, &res);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_join\");\n"
+"\\&\n"
+" printf(\"Joined with thread %d; returned value was %s\\en\",\n"
+" tinfo[tnum].thread_num, (char *) res);\n"
+" free(res); /* Free memory allocated by thread */\n"
+" }\n"
+"\\&\n"
+" free(tinfo);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+"#include E<lt>ctype.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"#define handle_error_en(en, msg) \\e\n"
+" do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+"\\&\n"
+"#define handle_error(msg) \\e\n"
+" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+"\\&\n"
+"struct thread_info { /* Utilisé comme argument pour thread_start() */\n"
+" pthread_t thread_id; /* Identifiant renvoyé par pthread_create() */\n"
+" int thread_num; /* N° de thread défini par l'application */\n"
+" char *argv_string; /* À partir de l'argument en ligne de commande */\n"
+"};\n"
+"\\&\n"
+"/* Fonction de démarrage du thread : affiche l'adresse vers le haut de la pile,\n"
+" et renvoie une copie en majuscule de argv_string. */\n"
+"\\&\n"
+"static void *\n"
+"thread_start(void *arg)\n"
+"{\n"
+" struct thread_info *tinfo = arg;\n"
+" char *uargv;\n"
+"\\&\n"
+" printf(\"Thread %d : sommet de la pile près de %p; argv_string=%s\\en\",\n"
+" tinfo-E<gt>thread_num, (void *) &tinfo, tinfo-E<gt>argv_string);\n"
+"\\&\n"
+" uargv = strdup(tinfo-E<gt>argv_string);\n"
+" if (uargv == NULL)\n"
+" handle_error(\"strdup\");\n"
+"\\&\n"
+" for (char *p = uargv; *p != \\[aq]\\e0\\[aq]; p++)\n"
+" *p = toupper(*p);\n"
+"\\&\n"
+" return uargv;\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int s, opt;\n"
+" void *res;\n"
+" size_t num_threads;\n"
+" ssize_t stack_size;\n"
+" pthread_attr_t attr;\n"
+" struct thread_info *tinfo;\n"
+"\\&\n"
+" /* L'option \"-s\" spécifie une taille de pile pour les threads. */\n"
+"\\&\n"
+" stack_size = -1;\n"
+" while ((opt = getopt(argc, argv, \"s:\")) != -1) {\n"
+" switch (opt) {\n"
+" case \\[aq]s\\[aq]:\n"
+" stack_size = strtoul(optarg, NULL, 0);\n"
+" break;\n"
+"\\&\n"
+" default:\n"
+" fprintf(stderr, \"Usage : %s [-s stack-size] arg...\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+"\\&\n"
+" num_threads = argc - optind;\n"
+"\\&\n"
+" /* Initialiser les attributs de création de thread. */\n"
+"\\&\n"
+" s = pthread_attr_init(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_init\");\n"
+"\\&\n"
+" if (stack_size E<gt> 0) {\n"
+" s = pthread_attr_setstacksize(&attr, stack_size);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_setstacksize\");\n"
+" }\n"
+"\\&\n"
+" /* Allouer la mémoire pour les arguments de pthread_create(). */\n"
+"\\&\n"
+" tinfo = calloc(num_threads, sizeof(*tinfo));\n"
+" if (tinfo == NULL)\n"
+" handle_error(\"calloc\");\n"
+"\\&\n"
+" /* Créer un thread pour chaque argument en ligne de commande. */\n"
+"\\&\n"
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" tinfo[tnum].thread_num = tnum + 1;\n"
+" tinfo[tnum].argv_string = argv[optind + tnum];\n"
+"\\&\n"
+" /* L'appel pthread_create() stocke l'identifiant du thread dans\n"
+" l'élément correspondant de tinfo[]. */\n"
+"\\&\n"
+" s = pthread_create(&tinfo[tnum].thread_id, &attr,\n"
+" &thread_start, &tinfo[tnum]);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_create\");\n"
+" }\n"
+"\\&\n"
+" /* Détruire l'objet des attributs du thread dans la mesure où\n"
+" il n'est plus nécessaire. */\n"
+"\\&\n"
+" s = pthread_attr_destroy(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_destroy\");\n"
+"\\&\n"
+" /* Maintenant joindre chaque thread et afficher la valeur qu'il renvoie. */\n"
+"\\&\n"
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" s = pthread_join(tinfo[tnum].thread_id, &res);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_join\");\n"
+"\\&\n"
+" printf(\"Thread joint %d ; la valeur renvoyée est %s\\en\",\n"
+" tinfo[tnum].thread_num, (char *) res);\n"
+" free(res); /* Libérer la mémoire allouée par thread */\n"
+" }\n"
+"\\&\n"
+" free(tinfo);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VOIR AUSSI"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<getrlimit>(2), B<pthread_attr_init>(3), B<pthread_cancel>(3), "
+"B<pthread_detach>(3), B<pthread_equal>(3), B<pthread_exit>(3), "
+"B<pthread_getattr_np>(3), B<pthread_join>(3), B<pthread_self>(3), "
+"B<pthread_setattr_default_np>(3), B<pthreads>(7)"
+msgstr ""
+"B<getrlimit>(2), B<pthread_attr_init>(3), B<pthread_cancel>(3), "
+"B<pthread_detach>(3), B<pthread_equal>(3), B<pthread_exit>(3), "
+"B<pthread_getattr_np>(3), B<pthread_join>(3), B<pthread_self>(3), "
+"B<pthread_setattr_default_np>(3), B<pthreads>(7)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5 février 2023"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Pages du manuel de Linux 6.03"
+
+#. type: Plain text
+#: debian-bookworm
+msgid "POSIX.1-2001, POSIX.1-2008."
+msgstr "POSIX.1-2001, POSIX.1-2008."
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Under the NPTL threading implementation, if the B<RLIMIT_STACK> soft "
+"resource limit I<at the time the program started> has any value other than "
+"\"unlimited\", then it determines the default stack size of new threads. "
+"Using B<pthread_attr_setstacksize>(3), the stack size attribute can be "
+"explicitly set in the I<attr> argument used to create a thread, in order to "
+"obtain a stack size other than the default. If the B<RLIMIT_STACK> resource "
+"limit is set to \"unlimited\", a per-architecture value is used for the "
+"stack size. Here is the value for a few architectures:"
+msgstr ""
+"Avec l'implémentation NPTL, si la limite souple B<RLIMIT_STACK> a une valeur "
+"autre qu'«\\ unlimited\\ » I<au moment où le programme a démarré>, elle "
+"détermine la taille de la pile par défaut pour les nouveaux threads. Afin "
+"d'obtenir une taille de pile différente de la valeur par défaut, il faut "
+"appeler B<pthread_attr_setstacksize>(3) avec la valeur souhaitée sur "
+"l'argument I<attr> utilisé pour créer un thread. Si la limite de ressources "
+"B<RLIMIT_STACK> a la valeur «\\ unlimited\\ », une valeur dépendant de "
+"l'architecture est utilisée pour la taille de la pile. Voici cette valeur "
+"pour quelques architectures :"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Architecture"
+msgstr "Architecture"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Default stack size"
+msgstr "Taille de pile par défaut"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "i386"
+msgstr "i386"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "2 MB"
+msgstr "2 Mo"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "IA-64"
+msgstr "IA-64"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "32 MB"
+msgstr "32 Mo"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "PowerPC"
+msgstr "PowerPC"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "4 MB"
+msgstr "4 Mo"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "S/390"
+msgstr "S/390"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Sparc-32"
+msgstr "Sparc-32"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Sparc-64"
+msgstr "Sparc-64"
+
+#. type: tbl table
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "x86_64"
+msgstr "x86_64"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#include E<lt>ctype.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+"#include E<lt>ctype.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>pthread.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define handle_error_en(en, msg) \\e\n"
+" do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+msgstr ""
+"#define handle_error_en(en, msg) \\e\n"
+" do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define handle_error(msg) \\e\n"
+" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+msgstr ""
+"#define handle_error(msg) \\e\n"
+" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct thread_info { /* Used as argument to thread_start() */\n"
+" pthread_t thread_id; /* ID returned by pthread_create() */\n"
+" int thread_num; /* Application-defined thread # */\n"
+" char *argv_string; /* From command-line argument */\n"
+"};\n"
+msgstr ""
+"struct thread_info { /* Utilisé comme argument pour thread_start() */\n"
+" pthread_t thread_id; /* Identifiant renvoyé par pthread_create() */\n"
+" int thread_num; /* N° de thread défini par l'application */\n"
+" char *argv_string; /* À partir de l'argument en ligne de commande */\n"
+"};\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"/* Thread start function: display address near top of our stack,\n"
+" and return upper-cased copy of argv_string. */\n"
+msgstr ""
+"/* Fonction de démarrage du thread : affiche l'adresse vers le haut de la pile,\n"
+" et renvoie une copie en majuscule de argv_string. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static void *\n"
+"thread_start(void *arg)\n"
+"{\n"
+" struct thread_info *tinfo = arg;\n"
+" char *uargv;\n"
+msgstr ""
+"static void *\n"
+"thread_start(void *arg)\n"
+"{\n"
+" struct thread_info *tinfo = arg;\n"
+" char *uargv;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"Thread %d: top of stack near %p; argv_string=%s\\en\",\n"
+" tinfo-E<gt>thread_num, (void *) &tinfo, tinfo-E<gt>argv_string);\n"
+msgstr ""
+" printf(\"Thread %d : sommet de la pile près de %p; argv_string=%s\\en\",\n"
+" tinfo-E<gt>thread_num, (void *) &tinfo, tinfo-E<gt>argv_string);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" uargv = strdup(tinfo-E<gt>argv_string);\n"
+" if (uargv == NULL)\n"
+" handle_error(\"strdup\");\n"
+msgstr ""
+" uargv = strdup(tinfo-E<gt>argv_string);\n"
+" if (uargv == NULL)\n"
+" handle_error(\"strdup\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (char *p = uargv; *p != \\[aq]\\e0\\[aq]; p++)\n"
+" *p = toupper(*p);\n"
+msgstr ""
+" for (char *p = uargv; *p != \\[aq]\\e0\\[aq]; p++)\n"
+" *p = toupper(*p);\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" return uargv;\n"
+"}\n"
+msgstr ""
+" return uargv;\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int s, opt;\n"
+" void *res;\n"
+" size_t num_threads;\n"
+" ssize_t stack_size;\n"
+" pthread_attr_t attr;\n"
+" struct thread_info *tinfo;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int s, opt;\n"
+" void *res;\n"
+" size_t num_threads;\n"
+" ssize_t stack_size;\n"
+" pthread_attr_t attr;\n"
+" struct thread_info *tinfo;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* The \"-s\" option specifies a stack size for our threads. */\n"
+msgstr " /* L'option \"-s\" spécifie une taille de pile pour les threads. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" stack_size = -1;\n"
+" while ((opt = getopt(argc, argv, \"s:\")) != -1) {\n"
+" switch (opt) {\n"
+" case \\[aq]s\\[aq]:\n"
+" stack_size = strtoul(optarg, NULL, 0);\n"
+" break;\n"
+msgstr ""
+" stack_size = -1;\n"
+" while ((opt = getopt(argc, argv, \"s:\")) != -1) {\n"
+" switch (opt) {\n"
+" case \\[aq]s\\[aq]:\n"
+" stack_size = strtoul(optarg, NULL, 0);\n"
+" break;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" default:\n"
+" fprintf(stderr, \"Usage: %s [-s stack-size] arg...\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+msgstr ""
+" default:\n"
+" fprintf(stderr, \"Usage: %s [-s stack-size] arg...\\en\",\n"
+" argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " num_threads = argc - optind;\n"
+msgstr " num_threads = argc - optind;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Initialize thread creation attributes. */\n"
+msgstr " /* Initialiser les attributs de création de thread. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" s = pthread_attr_init(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_init\");\n"
+msgstr ""
+" s = pthread_attr_init(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_init\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (stack_size E<gt> 0) {\n"
+" s = pthread_attr_setstacksize(&attr, stack_size);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_setstacksize\");\n"
+" }\n"
+msgstr ""
+" if (stack_size E<gt> 0) {\n"
+" s = pthread_attr_setstacksize(&attr, stack_size);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_setstacksize\");\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Allocate memory for pthread_create() arguments. */\n"
+msgstr " /* Allouer la mémoire pour les arguments de pthread_create(). */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" tinfo = calloc(num_threads, sizeof(*tinfo));\n"
+" if (tinfo == NULL)\n"
+" handle_error(\"calloc\");\n"
+msgstr ""
+" tinfo = calloc(num_threads, sizeof(*tinfo));\n"
+" if (tinfo == NULL)\n"
+" handle_error(\"calloc\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Create one thread for each command-line argument. */\n"
+msgstr " /* Créer un thread pour chaque argument en ligne de commande. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" tinfo[tnum].thread_num = tnum + 1;\n"
+" tinfo[tnum].argv_string = argv[optind + tnum];\n"
+msgstr ""
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" tinfo[tnum].thread_num = tnum + 1;\n"
+" tinfo[tnum].argv_string = argv[optind + tnum];\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* The pthread_create() call stores the thread ID into\n"
+" corresponding element of tinfo[]. */\n"
+msgstr ""
+" /* L'appel pthread_create() stocke l'identifiant du thread dans\n"
+" l'élément correspondant de tinfo[]. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" s = pthread_create(&tinfo[tnum].thread_id, &attr,\n"
+" &thread_start, &tinfo[tnum]);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_create\");\n"
+" }\n"
+msgstr ""
+" s = pthread_create(&tinfo[tnum].thread_id, &attr,\n"
+" &thread_start, &tinfo[tnum]);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_create\");\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Destroy the thread attributes object, since it is no\n"
+" longer needed. */\n"
+msgstr ""
+" /* Détruire l'objet des attributs du thread dans la mesure où\n"
+" il n'est plus nécessaire. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" s = pthread_attr_destroy(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_destroy\");\n"
+msgstr ""
+" s = pthread_attr_destroy(&attr);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_attr_destroy\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Now join with each thread, and display its returned value. */\n"
+msgstr " /* Maintenant joindre chaque thread et afficher la valeur qu'il renvoie. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" s = pthread_join(tinfo[tnum].thread_id, &res);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_join\");\n"
+msgstr ""
+" for (size_t tnum = 0; tnum E<lt> num_threads; tnum++) {\n"
+" s = pthread_join(tinfo[tnum].thread_id, &res);\n"
+" if (s != 0)\n"
+" handle_error_en(s, \"pthread_join\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"Joined with thread %d; returned value was %s\\en\",\n"
+" tinfo[tnum].thread_num, (char *) res);\n"
+" free(res); /* Free memory allocated by thread */\n"
+" }\n"
+msgstr ""
+" printf(\"Thread joint %d ; la valeur renvoyée est %s\\en\",\n"
+" tinfo[tnum].thread_num, (char *) res);\n"
+" free(res); /* Libérer la mémoire allouée par thread */\n"
+" }\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" free(tinfo);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" free(tinfo);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-20"
+msgstr "20 juillet 2023"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Pages du manuel de Linux 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 mars 2023"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Pages du manuel de Linux 6.04"