# French translation of manpages
# This file is distributed under the same license as the manpages-l10n package.
# Copyright © of this file:
# Christophe Blaess , 1996-2003.
# Stéphan Rafin , 2002.
# Thierry Vignaud , 1999, 2002.
# François Micaux, 2002.
# Alain Portal , 2003-2008.
# Jean-Philippe Guérard , 2005-2006.
# Jean-Luc Coulon (f5ibh) , 2006-2007.
# Julien Cristau , 2006-2007.
# Thomas Huriaux , 2006-2008.
# Nicolas François , 2006-2008.
# Florentin Duneau , 2006-2010.
# Simon Paillard , 2006.
# Denis Barbier , 2006, 2010.
# David Prévot , 2010, 2012.
# Frédéric Hantrais , 2013, 2014.
# Jean-Pierre Giraud , 2023-2024.
msgid ""
msgstr ""
"Project-Id-Version: manpages-l10n 4.22.0\n"
"POT-Creation-Date: 2024-06-01 06:13+0200\n"
"PO-Revision-Date: 2024-04-20 13:02+0200\n"
"Last-Translator: Jean-Pierre Giraud \n"
"Language-Team: French \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 22.12.3\n"
#. type: TH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "pthread_cleanup_push"
msgstr "pthread_cleanup_push"
#. type: TH
#: archlinux debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "2024-05-02"
msgstr "2 mai 2024"
#. type: TH
#: archlinux debian-unstable
#, no-wrap
msgid "Linux man-pages 6.8"
msgstr "Pages du manuel de Linux 6.8"
#. 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_cleanup_push, pthread_cleanup_pop - push and pop thread cancelation "
"clean-up handlers"
msgstr ""
"pthread_cleanup_push, pthread_cleanup_pop — Empiler et dépiler des "
"gestionnaires de nettoyage de threads"
#. 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, I<-lpthread>)"
msgstr "Bibliothèque de threads POSIX (I, 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 Epthread.hE>\n"
msgstr "B<#include Epthread.hE>\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"BIB<)(void *), void *>IB<);>\n"
"BIB<);>\n"
msgstr ""
"BIB<)(void *), void *>IB<);>\n"
"BIB<);>\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 ""
"These functions manipulate the calling thread's stack of thread-cancelation "
"clean-up handlers. A clean-up handler is a function that is automatically "
"executed when a thread is canceled (or in various other circumstances "
"described below); it might, for example, unlock a mutex so that it becomes "
"available to other threads in the process."
msgstr ""
"Ces fonctions manipulent la pile de gestionnaires de nettoyage du thread "
"appelant. Un gestionnaire de nettoyage est une fonction qui est "
"automatiquement exécutée quand un thread est annulé (ou dans d'autres "
"circonstances, décrites ci-dessous). Il peut, par exemple, déverrouiller un "
"mutex pour le rendre disponible aux autres 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 B() function pushes I onto the top of "
"the stack of clean-up handlers. When I is later invoked, it will "
"be given I as its argument."
msgstr ""
"La fonction B() empile I au sommet de la pile "
"des gestionnaires de nettoyage. Quand I sera appelée "
"ultérieurement, I sera passé en argument."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The B() function removes the routine at the top of the "
"stack of clean-up handlers, and optionally executes it if I is "
"nonzero."
msgstr ""
"La fonction B() dépile la routine au sommet de la pile "
"des gestionnaires de nettoyage et éventuellement l'exécute si l'argument "
"I est non nul."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A cancelation clean-up handler is popped from the stack and executed in the "
"following circumstances:"
msgstr ""
"Un gestionnaire de nettoyage est dépilé et exécuté dans les circonstances "
"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 ""
"When a thread is canceled, all of the stacked clean-up handlers are popped "
"and executed in the reverse of the order in which they were pushed onto the "
"stack."
msgstr ""
"Quand un thread est annulé, tous les gestionnaires de nettoyage empilés sont "
"dépilés et exécutés dans l'ordre inverse dans lequel ils ont été empilés."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When a thread terminates by calling B(3), all clean-up "
"handlers are executed as described in the preceding point. (Clean-up "
"handlers are I called if the thread terminates by performing a "
"I from the thread start function.)"
msgstr ""
"Quand un thread se termine en appelant B(3), tous les "
"gestionnaires de nettoyage sont exécutés comme décrit dans le point "
"précédent. Il faut noter que les gestionnaires de nettoyage ne sont I "
"appelés si le thread se termine par un I depuis la fonction de "
"démarrage du thread."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When a thread calls B() with a nonzero I "
"argument, the top-most clean-up handler is popped and executed."
msgstr ""
"Quand un thread appelle B() avec un argument I "
"non nul, le gestionnaire de nettoyage au sommet de la pile est dépilé et "
"exécuté."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"POSIX.1 permits B() and B() to "
"be implemented as macros that expand to text containing \\[aq]B<{>\\[aq] and "
"\\[aq]B<}>\\[aq], respectively. For this reason, the caller must ensure "
"that calls to these functions are paired within the same function, and at "
"the same lexical nesting level. (In other words, a clean-up handler is "
"established only during the execution of a specified section of code.)"
msgstr ""
"POSIX.1 autorise B() et B() à "
"être implémentées comme des macros qui sont développées en du texte "
"contenant «\\ B<{>\\ » et «\\ B<}>\\ » respectivement. Pour cette raison, "
"l'appelant doit s'assurer que les appels à ces fonctions sont appariés à "
"l'intérieur d'une même fonction et au même niveau d'imbriquement lexical. En "
"d'autres termes, un gestionnaire de nettoyage n'est établi que pendant "
"l'exécution d'une partie spécifique de code."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Calling B(3) (B(3)) produces undefined results if any "
"call has been made to B() or "
"B() without the matching call of the pair since the "
"jump buffer was filled by B(3) (B(3)). Likewise, "
"calling B(3) (B(3)) from inside a clean-up handler "
"produces undefined results unless the jump buffer was also filled by "
"B(3) (B(3)) inside the handler."
msgstr ""
"Un appel à B(3) (resp. B(3)) produit des résultats "
"indéfinis si un appel à B() ou "
"B() a été réalisé sans l'appel correspondant de la "
"paire si le tampon de saut a été rempli par B(3) (resp. "
"B(3)). De la même manière, un appel à B(3) (resp. "
"B(3)) depuis un gestionnaire de nettoyage entraine des "
"résultats indéfinis, sauf si le tampon de saut a lui aussi été rempli dans "
"B(3) (resp. B(3)) à l'intérieur du gestionnaire."
#. 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 "These functions do not return a value."
msgstr "Ces fonctions ne renvoient aucune valeur."
#. 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"
#. #-#-#-#-# archlinux: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#. #-#-#-#-# debian-bookworm: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. SH VERSIONS
#. Available since glibc 2.0
#. type: Plain text
#. #-#-#-#-# debian-unstable: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#. #-#-#-#-# fedora-40: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#. #-#-#-#-# fedora-rawhide: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#. #-#-#-#-# mageia-cauldron: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#. #-#-#-#-# opensuse-leap-15-6: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#. #-#-#-#-# opensuse-tumbleweed: pthread_cleanup_push.3.pot (PACKAGE VERSION) #-#-#-#-#
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "There are no errors."
msgstr "Il n'y a pas d'erreur."
#. 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(7)."
msgstr ""
"Pour une explication des termes utilisés dans cette section, consulter "
"B(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(),\n"
"B()"
msgstr ""
"B(),\n"
"B()"
#. 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-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "VERSIONS"
msgstr "VERSIONS"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"On glibc, the B() and B() "
"functions I implemented as macros that expand to text containing "
"\\[aq]B<{>\\[aq] and \\[aq]B<}>\\[aq], respectively. This means that "
"variables declared within the scope of paired calls to these functions will "
"be visible within only that scope."
msgstr ""
"Sous la glibc, les fonctions B() et "
"B() I implémentées comme des macros qui sont "
"développées en du texte contenant «\\ B<{>\\ » et «\\ B<}>\\ » "
"respectivement. Cela signifie que les variables déclarées entre les appels "
"appariés à ces fonctions ne seront visible qu'à l'intérieur de cet "
"intervalle."
#. The text was actually added in the 2004 TC2
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"POSIX.1 says that the effect of using I, I, I, or "
"I to prematurely leave a block bracketed B() "
"and B() is undefined. Portable applications should "
"avoid doing this."
msgstr ""
"POSIX.1 indique qu'utiliser I, I, I ou I pour "
"quitter prématurément un bloc compris entre B() et "
"B() entraîne un comportement indéfini. Les applications "
"portables doivent l'éviter."
#. 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. glibc 2.0."
msgstr "POSIX.1-2001. glibc 2.0."
#. 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 provides a simple example of the use of the functions "
"described in this page. The program creates a thread that executes a loop "
"bracketed by B() and B(). This "
"loop increments a global variable, I, once each second. Depending on "
"what command-line arguments are supplied, the main thread sends the other "
"thread a cancelation request, or sets a global variable that causes the "
"other thread to exit its loop and terminate normally (by doing a I)."
msgstr ""
"Le programme ci-dessous fournit un exemple simple de l'utilisation des "
"fonctions décrites dans cette page. Le programme crée un thread qui exécute "
"une boucle comprise entre des appels à B() et "
"B(). Cette boucle incrémente une variable globale, "
"I, à chaque seconde. En fonction des arguments fournis sur la ligne de "
"commande, le thread principal envoie une requête d'annulation à l'autre "
"thread, ou définit une variable globale qui fait que l'autre thread quitte "
"sa boucle et se termine normalement (avec un I)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In the following shell session, the main thread sends a cancelation request "
"to the other thread:"
msgstr ""
"Dans la session d'interpréteur de commande ci-dessous, le thread principal "
"envoie une requête d'annulation à l'autre thread\\ :"
#. 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>\n"
"New thread started\n"
"cnt = 0\n"
"cnt = 1\n"
"Canceling thread\n"
"Called clean-up handler\n"
"Thread was canceled; cnt = 0\n"
msgstr ""
"$ B<./a.out>\n"
"Nouveau thread démarré\n"
"cnt = 0\n"
"cnt = 1\n"
"Annulation du thread\n"
"Gestionnaire de nettoyage appelé\n"
"Le thread a été annulé ; cnt = 0\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"From the above, we see that the thread was canceled, and that the "
"cancelation clean-up handler was called and it reset the value of the global "
"variable I to 0."
msgstr ""
"Dans la sortie, nous voyons que le thread a été annulé et que le "
"gestionnaire de nettoyage a été appelé et a remis la valeur de la variable "
"globale I à 0."
#. 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 main program sets a global variable that causes other "
"thread to terminate normally:"
msgstr ""
"Lors de l'exécution suivante, le programme principal définit une variable "
"globale qui fait que l'autre thread se termine normalement\\ :"
#. 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 x>\n"
"New thread started\n"
"cnt = 0\n"
"cnt = 1\n"
"Thread terminated normally; cnt = 2\n"
msgstr ""
"$ B<./a.out x>\n"
"Nouveau thread démarré\n"
"cnt = 0\n"
"cnt = 1\n"
"Thread terminé normalement ; cnt = 2\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"From the above, we see that the clean-up handler was not executed (because "
"I was 0), and therefore the value of I was not reset."
msgstr ""
"Dans la sortie, nous voyons que le gestionnaire de nettoyage n'a pas été "
"appelé (car I vaut 0), et la variable I n'a pas été "
"réinitialisée."
#. 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 main program sets a global variable that causes the "
"other thread to terminate normally, and supplies a nonzero value for "
"I:"
msgstr ""
"Lors de l'exécution suivante, le programme principal définit une variable "
"globale qui fait que l'autre thread se termine normalement, et fournit une "
"valeur non-nulle à I\\ :"
#. 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 x 1>\n"
"New thread started\n"
"cnt = 0\n"
"cnt = 1\n"
"Called clean-up handler\n"
"Thread terminated normally; cnt = 0\n"
msgstr ""
"$ B<./a.out x 1>\n"
"Nouveau thread démarré\n"
"cnt = 0\n"
"cnt = 1\n"
"Gestionnaire de nettoyage appelé\n"
"Thread terminé normalement ; cnt = 0\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In the above, we see that although the thread was not canceled, the clean-up "
"handler was executed, because the argument given to "
"B() was nonzero."
msgstr ""
"Dans la sortie, nous voyons que bien que le thread n'ait pas été annulé, le "
"gestionnaire de nettoyage a été appelé, car l'argument fourni à "
"B n'était pas nul."
#. 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 Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
"\\&\n"
"#define handle_error_en(en, msg) \\e\n"
" do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)\n"
"\\&\n"
"static int done = 0;\n"
"static int cleanup_pop_arg = 0;\n"
"static int cnt = 0;\n"
"\\&\n"
"static void\n"
"cleanup_handler(void *arg)\n"
"{\n"
" printf(\"Called clean-up handler\\en\");\n"
" cnt = 0;\n"
"}\n"
"\\&\n"
"static void *\n"
"thread_start(void *arg)\n"
"{\n"
" time_t curr;\n"
"\\&\n"
" printf(\"New thread started\\en\");\n"
"\\&\n"
" pthread_cleanup_push(cleanup_handler, NULL);\n"
"\\&\n"
" curr = time(NULL);\n"
"\\&\n"
" while (!done) {\n"
" pthread_testcancel(); /* A cancelation point */\n"
" if (curr E time(NULL)) {\n"
" curr = time(NULL);\n"
" printf(\"cnt = %d\\en\", cnt); /* A cancelation point */\n"
" cnt++;\n"
" }\n"
" }\n"
"\\&\n"
" pthread_cleanup_pop(cleanup_pop_arg);\n"
" return NULL;\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" pthread_t thr;\n"
" int s;\n"
" void *res;\n"
"\\&\n"
" s = pthread_create(&thr, NULL, thread_start, NULL);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_create\");\n"
"\\&\n"
" sleep(2); /* Allow new thread to run a while */\n"
"\\&\n"
" if (argc E 1) {\n"
" if (argc E 2)\n"
" cleanup_pop_arg = atoi(argv[2]);\n"
" done = 1;\n"
"\\&\n"
" } else {\n"
" printf(\"Canceling thread\\en\");\n"
" s = pthread_cancel(thr);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_cancel\");\n"
" }\n"
"\\&\n"
" s = pthread_join(thr, &res);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_join\");\n"
"\\&\n"
" if (res == PTHREAD_CANCELED)\n"
" printf(\"Thread was canceled; cnt = %d\\en\", cnt);\n"
" else\n"
" printf(\"Thread terminated normally; cnt = %d\\en\", cnt);\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"#include Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
"\\&\n"
"#define handle_error_en(en, msg) \\e\n"
" do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)\n"
"\\&\n"
"static int done = 0;\n"
"static int cleanup_pop_arg = 0;\n"
"static int cnt = 0;\n"
"\\&\n"
"static void\n"
"cleanup_handler(void *arg)\n"
"{\n"
" printf(\"Gestionnaire de nettoyage appelé\\en\");\n"
" cnt = 0;\n"
"}\n"
"\\&\n"
"static void *\n"
"thread_start(void *arg)\n"
"{\n"
" time_t curr;\n"
"\\&\n"
" printf(\"Nouveau thread démarré\\en\");\n"
"\\&\n"
" pthread_cleanup_push(cleanup_handler, NULL);\n"
"\\&\n"
" curr = time(NULL);\n"
"\\&\n"
" while (!done) {\n"
" pthread_testcancel(); /* Un point d'annulation */\n"
" if (curr E time(NULL)) {\n"
" curr = time(NULL);\n"
" printf(\"cnt = %d\\en\", cnt); /* Un point d'annulation */\n"
" cnt++;\n"
" }\n"
" }\n"
"\\&\n"
" pthread_cleanup_pop(cleanup_pop_arg);\n"
" return NULL;\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" pthread_t thr;\n"
" int s;\n"
" void *res;\n"
"\\&\n"
" s = pthread_create(&thr, NULL, thread_start, NULL);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_create\");\n"
"\\&\n"
" sleep(2); /* Permettre l'exécution du nouveau thread quelque temps */\n"
"\\&\n"
" if (argc E 1) {\n"
" if (argc E 2)\n"
" cleanup_pop_arg = atoi(argv[2]);\n"
" done = 1;\n"
"\\&\n"
" } else {\n"
" printf(\"Annulation du thread\\en\");\n"
" s = pthread_cancel(thr);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_cancel\");\n"
" }\n"
"\\&\n"
" s = pthread_join(thr, &res);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_join\");\n"
"\\&\n"
" if (res == PTHREAD_CANCELED)\n"
" printf(\"Le thread a été annulé ; cnt = %d\\en\", cnt);\n"
" else\n"
" printf(\"Thread terminé normalement ; cnt = %d\\en\", cnt);\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(3), B(3), "
"B(3), B(3), B(7)"
msgstr ""
"B(3), B(3), "
"B(3), B(3), B(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: SH
#: debian-bookworm
#, no-wrap
msgid "NOTES"
msgstr "NOTES"
#. type: Plain text
#: debian-bookworm
msgid ""
"On Linux, the B() and B() "
"functions I implemented as macros that expand to text containing "
"\\[aq]B<{>\\[aq] and \\[aq]B<}>\\[aq], respectively. This means that "
"variables declared within the scope of paired calls to these functions will "
"be visible within only that scope."
msgstr ""
"Sous Linux, les fonctions B() et "
"B() I implémentées comme des macros qui sont "
"développées en du texte contenant «\\ B<{>\\ » et «\\ B<}>\\ » "
"respectivement. Cela signifie que les variables déclarées entre les appels "
"appariés à ces fonctions ne seront visible qu'à l'intérieur de cet "
"intervalle."
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"#include Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\n"
msgstr ""
"#include Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/types.hE\n"
"#include Eunistd.hE\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 ""
"static int done = 0;\n"
"static int cleanup_pop_arg = 0;\n"
"static int cnt = 0;\n"
msgstr ""
"static int done = 0;\n"
"static int cleanup_pop_arg = 0;\n"
"static int cnt = 0;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void\n"
"cleanup_handler(void *arg)\n"
"{\n"
" printf(\"Called clean-up handler\\en\");\n"
" cnt = 0;\n"
"}\n"
msgstr ""
"static void\n"
"cleanup_handler(void *arg)\n"
"{\n"
" printf(\"Gestionnaire de nettoyage appelé\\en\");\n"
" cnt = 0;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void *\n"
"thread_start(void *arg)\n"
"{\n"
" time_t curr;\n"
msgstr ""
"static void *\n"
"thread_start(void *arg)\n"
"{\n"
" time_t curr;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " printf(\"New thread started\\en\");\n"
msgstr " printf(\"Nouveau thread démarré\\en\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " pthread_cleanup_push(cleanup_handler, NULL);\n"
msgstr " pthread_cleanup_push(cleanup_handler, NULL);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " curr = time(NULL);\n"
msgstr " curr = time(NULL);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" while (!done) {\n"
" pthread_testcancel(); /* A cancelation point */\n"
" if (curr E time(NULL)) {\n"
" curr = time(NULL);\n"
" printf(\"cnt = %d\\en\", cnt); /* A cancelation point */\n"
" cnt++;\n"
" }\n"
" }\n"
msgstr ""
" while (!done) {\n"
" pthread_testcancel(); /* Un point d'annulation */\n"
" if (curr E time(NULL)) {\n"
" curr = time(NULL);\n"
" printf(\"cnt = %d\\en\", cnt); /* Un point d'annulation */\n"
" cnt++;\n"
" }\n"
" }\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" pthread_cleanup_pop(cleanup_pop_arg);\n"
" return NULL;\n"
"}\n"
msgstr ""
" pthread_cleanup_pop(cleanup_pop_arg);\n"
" return NULL;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" pthread_t thr;\n"
" int s;\n"
" void *res;\n"
msgstr ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" pthread_t thr;\n"
" int s;\n"
" void *res;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" s = pthread_create(&thr, NULL, thread_start, NULL);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_create\");\n"
msgstr ""
" s = pthread_create(&thread, NULL, thread_start, NULL);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_create\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " sleep(2); /* Allow new thread to run a while */\n"
msgstr ""
" sleep(2); /* Permettre l'exécution du nouveau thread\n"
" quelque temps */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" if (argc E 1) {\n"
" if (argc E 2)\n"
" cleanup_pop_arg = atoi(argv[2]);\n"
" done = 1;\n"
msgstr ""
" if (argc E 1) {\n"
" if (argc E 2)\n"
" cleanup_pop_arg = atoi(argv[2]);\n"
" done = 1;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" } else {\n"
" printf(\"Canceling thread\\en\");\n"
" s = pthread_cancel(thr);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_cancel\");\n"
" }\n"
msgstr ""
" } else {\n"
" printf(\"Annulation du thread\\en\");\n"
" s = pthread_cancel(thr);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_cancel\");\n"
" }\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" s = pthread_join(thr, &res);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_join\");\n"
msgstr ""
" s = pthread_join(thr, &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 ""
" if (res == PTHREAD_CANCELED)\n"
" printf(\"Thread was canceled; cnt = %d\\en\", cnt);\n"
" else\n"
" printf(\"Thread terminated normally; cnt = %d\\en\", cnt);\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
" if (res == PTHREAD_CANCELED)\n"
" printf(\"Le thread a été annulé ; cnt = %d\\en\", cnt);\n"
" else\n"
" printf(\"Thread terminé normalement ; cnt = %d\\en\", cnt);\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: TH
#: fedora-40 fedora-rawhide mageia-cauldron
#, no-wrap
msgid "2023-10-31"
msgstr "31 octobre 2023"
#. type: TH
#: fedora-40 mageia-cauldron
#, no-wrap
msgid "Linux man-pages 6.06"
msgstr "Pages du manuel de Linux 6.06"
#. type: TH
#: fedora-rawhide
#, no-wrap
msgid "Linux man-pages 6.7"
msgstr "Pages du manuel de Linux 6.7"
#. 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"
#. type: TH
#: opensuse-tumbleweed
#, no-wrap
msgid "Linux man-pages (unreleased)"
msgstr "Pages du manuel de Linux (non publiées)"