diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /po/fr/man3/pthread_create.3.po | |
parent | Initial commit. (diff) | |
download | manpages-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.po | 1421 |
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" |