# 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.
msgid ""
msgstr ""
"Project-Id-Version: perkamon\n"
"POT-Creation-Date: 2024-06-01 06:13+0200\n"
"PO-Revision-Date: 2023-07-25 16:53+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_mutexattr_setrobust"
msgstr "pthread_mutexattr_setrobust"
#. 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_mutexattr_getrobust, pthread_mutexattr_setrobust - get and set the "
"robustness attribute of a mutex attributes object"
msgstr ""
"pthread_mutexattr_getrobust, pthread_mutexattr_setrobust — Définir ou "
"obtenir l'attribut de robustesse d'un objet d'attributs de mutex"
#. 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<,>\n"
"B< int *>IB<);>\n"
"BIB<,>\n"
"B< int >IB<);>\n"
msgstr ""
"BIB<,>\n"
"B< int *>IB<);>\n"
"BIB<,>\n"
"B< int >IB<);>\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Feature Test Macro Requirements for glibc (see B(7)):"
msgstr ""
"Exigences de macros de test de fonctionnalités pour la glibc (consulter "
"B(7)) :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "B(), B():"
msgstr "B(), B() :"
#. FIXME .
#. But see https://sourceware.org/bugzilla/show_bug.cgi?id=22125
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid " _POSIX_C_SOURCE E= 200809L\n"
msgstr " _POSIX_C_SOURCE E= 200809L\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() function places the value of the "
"robustness attribute of the mutex attributes object referred to by I "
"in I<*robustness>. The B() function sets the "
"value of the robustness attribute of the mutex attributes object referred to "
"by I to the value specified in I<*robustness>."
msgstr ""
"La fonction B() place la valeur de l'attribut "
"de robustesse de l'objet d'attributs de mutex auquel I fait référence "
"dans I<*robustesse>. La fonction B() définit à "
"la valeur spécifiée dans I<*robustesse> la valeur de l'attribut de "
"robustesse de l'objet d'attributs de mutex auquel I fait référence."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The robustness attribute specifies the behavior of the mutex when the owning "
"thread dies without unlocking the mutex. The following values are valid for "
"I:"
msgstr ""
"L'attribut de robustesse définit le comportement du mutex quand le thread "
"propriétaire finit sans déverrouiller le mutex. Les valeurs suivantes sont "
"permises pour I :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This is the default value for a mutex attributes object. If a mutex is "
"initialized with the B attribute and its owner dies "
"without unlocking it, the mutex remains locked afterwards and any future "
"attempts to call B(3) on the mutex will block "
"indefinitely."
msgstr ""
"C'est la valeur par défaut pour un objet d'attributs de mutex. Si un mutex "
"est initialisé avec l'attribut B et si son "
"propriétaire finit sans le déverrouiller, le mutex demeure verrouillé "
"ensuite et toute tentative ultérieure pour appeler B(3) "
"sur le mutex bloquera indéfiniment."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If a mutex is initialized with the B attribute and its "
"owner dies without unlocking it, any future attempts to call "
"B(3) on this mutex will succeed and return "
"B to indicate that the original owner no longer exists and the "
"mutex is in an inconsistent state. Usually after B is returned, "
"the next owner should call B(3) on the acquired "
"mutex to make it consistent again before using it any further."
msgstr ""
"Si un mutex est initialisé avec l'attribut B et si son "
"propriétaire finit sans le déverrouiller, toute tentative ultérieure pour "
"appeler B(3) sur ce mutex réussira et renverra "
"B pour indiquer que le propriétaire d'origine n'existe plus et "
"que le mutex est dans un état incohérent. Habituellement, après l'envoi de "
"B, le propriétaire suivant devrait appeler "
"B(3) sur le mutex acquis pour le rendre à nouveau "
"cohérent avant de l'utiliser plus avant."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If the next owner unlocks the mutex using B(3) before "
"making it consistent, the mutex will be permanently unusable and any "
"subsequent attempts to lock it using B(3) will fail "
"with the error B. The only permitted operation on such a "
"mutex is B(3)."
msgstr ""
"Si le propriétaire suivant déverrouille le mutex avec "
"B(3) avant de le rendre cohérent, le mutex demeurera "
"inutilisable de façon permanente et toute tentative ultérieure pour le "
"verrouiller avec B(3) échouera avec l'erreur "
"B. B(3) est la seule opération "
"permise sur un mutex dans cet état."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If the next owner terminates before calling B(3), "
"further B(3) operations on this mutex will still return "
"B."
msgstr ""
"Si le propriétaire suivant termine avant d'appeler "
"B(3), les opérations B(3) "
"ultérieures sur ce mutex renverront encore B."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Note that the I argument of B() and "
"B() should refer to a mutex attributes object "
"that was initialized by B(3), otherwise the behavior "
"is undefined."
msgstr ""
"Veuillez noter que l'argument I de B() et "
"de B() doit faire référence à l'objet "
"d'attributs de mutex initialisé par B(3), autrement "
"le comportement 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 "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, these functions return 0. On error, they return a positive "
"error number."
msgstr ""
"En cas de réussite, ces fonctions renvoient B<0> ; en cas d'erreur, elles "
"renvoient un code d'erreur positif."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In the glibc implementation, B() always return "
"zero."
msgstr ""
"Dans l'implémentation de la glibc, B() renvoie "
"toujours zéro."
#. 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"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A value other than B or B was "
"passed to B()."
msgstr ""
"Une valeur autre que B ou B a "
"été passée à B()."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "VERSIONS"
msgstr "VERSIONS"
#. E.g., Solaris, according to its manual page
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In the Linux implementation, when using process-shared robust mutexes, a "
"waiting thread also receives the B notification if the owner of "
"a robust mutex performs an B(2) without first unlocking the mutex. "
"POSIX.1 does not specify this detail, but the same behavior also occurs in "
"at least some other implementations."
msgstr ""
"Dans l'implémentation de Linux, lors de l'utilisation de mutex à processus "
"partagé robustes, un thread en attente reçoit également la notification "
"B si le propriétaire d'un mutex robuste réalise une commande "
"B(2) sans avoir préalablement déverrouillé le mutex. POSIX.1 ne "
"spécifie pas ce détail, mais le même comportement se produit aussi dans au "
"moins quelques autres implémentations."
#. 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-bookworm 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 "glibc 2.12. POSIX.1-2008."
msgstr "glibc 2.12. POSIX.1-2008."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Before the addition of B() and "
"B() to POSIX, glibc defined the following "
"equivalent nonstandard functions if B<_GNU_SOURCE> was defined:"
msgstr ""
"Avant l'ajout à POSIX de B() et "
"B(), la glibc définissait les fonctions non "
"standard équivalentes suivantes si B<_GNU_SOURCE> était défini :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"B<[[deprecated]]>\n"
"BIB<,>\n"
"B< int *>IB<);>\n"
"B<[[deprecated]]>\n"
"BIB<,>\n"
"B< int >IB<);>\n"
msgstr ""
"B<[[obsolète]]>\n"
"BIB<,>\n"
"B< int *>IB<);>\n"
"B<[[obsolète]]>\n"
"BIB<,>\n"
"B< int >IB<);>\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Correspondingly, the constants B and "
"B were also defined."
msgstr ""
"De la même façon, les constantes B et "
"B étaient également définies."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"These GNU-specific APIs, which first appeared in glibc 2.4, are nowadays "
"obsolete and should not be used in new programs; since glibc 2.34 these APIs "
"are marked as deprecated."
msgstr ""
"Ces API propres à GNU, apparues dans la glibc 2.4, sont à présent obsolètes "
"et ne devraient pas être utilisées dans de nouveaux programmes. Depuis la "
"glibc 2.34, ces API sont marquées comme obsolètes."
#. 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 the robustness attribute of a "
"mutex attributes object. In this program, a thread holding the mutex dies "
"prematurely without unlocking the mutex. The main thread subsequently "
"acquires the mutex successfully and gets the error B, after "
"which it makes the mutex consistent."
msgstr ""
"Le programme ci-dessous montre l'utilisation de l'attribut de robustesse "
"d'un objet d'attributs de mutex. Dans ce programme, un thread possédant le "
"mutex s'interrompt prématurément sans déverrouiller le mutex. Le thread "
"principal acquiert ensuite le mutex avec succès et reçoit l'erreur "
"B après quoi il rend le mutex cohérent."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The following shell session shows what we see when running this program:"
msgstr ""
"La session d'interpréteur de commande suivante montre l'exécution de ce "
"programme :"
#. 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"
"[original owner] Setting lock...\n"
"[original owner] Locked. Now exiting without unlocking.\n"
"[main] Attempting to lock the robust mutex.\n"
"[main] pthread_mutex_lock() returned EOWNERDEAD\n"
"[main] Now make the mutex consistent\n"
"[main] Mutex is now consistent; unlocking\n"
msgstr ""
"$ B<./a.out>\n"
"[original owner] Mise en place du verrou...\n"
"[original owner] Verrouillé. Sortie sans déverrouillage.\n"
"[main] Tentative de verrouillage du mutex robuste.\n"
"[main] pthread_mutex_lock() renvoie EOWNERDEAD\n"
"[main] Maintenant rendre le mutex cohérent\n"
"[main] Le mutex est maintenant cohérent ; déverrouillage\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 Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.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 pthread_mutex_t mtx;\n"
"\\&\n"
"static void *\n"
"original_owner_thread(void *ptr)\n"
"{\n"
" printf(\"[original owner] Setting lock...\\en\");\n"
" pthread_mutex_lock(&mtx);\n"
" printf(\"[original owner] Locked. Now exiting without unlocking.\\en\");\n"
" pthread_exit(NULL);\n"
"}\n"
"\\&\n"
"int\n"
"main(void)\n"
"{\n"
" pthread_t thr;\n"
" pthread_mutexattr_t attr;\n"
" int s;\n"
"\\&\n"
" pthread_mutexattr_init(&attr);\n"
"\\&\n"
" pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);\n"
"\\&\n"
" pthread_mutex_init(&mtx, &attr);\n"
"\\&\n"
" pthread_create(&thr, NULL, original_owner_thread, NULL);\n"
"\\&\n"
" sleep(2);\n"
"\\&\n"
" /* \"original_owner_thread\" should have exited by now. */\n"
"\\&\n"
" printf(\"[main] Attempting to lock the robust mutex.\\en\");\n"
" s = pthread_mutex_lock(&mtx);\n"
" if (s == EOWNERDEAD) {\n"
" printf(\"[main] pthread_mutex_lock() returned EOWNERDEAD\\en\");\n"
" printf(\"[main] Now make the mutex consistent\\en\");\n"
" s = pthread_mutex_consistent(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_consistent\");\n"
" printf(\"[main] Mutex is now consistent; unlocking\\en\");\n"
" s = pthread_mutex_unlock(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_unlock\");\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
" } else if (s == 0) {\n"
" printf(\"[main] pthread_mutex_lock() unexpectedly succeeded\\en\");\n"
" exit(EXIT_FAILURE);\n"
" } else {\n"
" printf(\"[main] pthread_mutex_lock() unexpectedly failed\\en\");\n"
" handle_error_en(s, \"pthread_mutex_lock\");\n"
" }\n"
"}\n"
msgstr ""
"#include Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.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 pthread_mutex_t mtx;\n"
"\\&\n"
"static void *\n"
"original_owner_thread(void *ptr)\n"
"{\n"
" printf(\"[original owner] Mise en place du verrou...\\en\");\n"
" pthread_mutex_lock(&mtx);\n"
" printf(\"[original owner] Verrouillé. Sortie sans déverrouillage.\\en\");\n"
" pthread_exit(NULL);\n"
"}\n"
"\\&\n"
"int\n"
"main(void)\n"
"{\n"
" pthread_t thr;\n"
" pthread_mutexattr_t attr;\n"
" int s;\n"
"\\&\n"
" pthread_mutexattr_init(&attr);\n"
"\\&\n"
" pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);\n"
"\\&\n"
" pthread_mutex_init(&mtx, &attr);\n"
"\\&\n"
" pthread_create(&thr, NULL, original_owner_thread, NULL);\n"
"\\&\n"
" sleep(2);\n"
"\\&\n"
" /* \"original_owner_thread\" devrait avoir quitté maintenant. */\n"
"\\&\n"
" printf(\"[main] Tentative de verrouillage du mutex robuste.\\en\");\n"
" s = pthread_mutex_lock(&mtx);\n"
" if (s == EOWNERDEAD) {\n"
" printf(\"[main] pthread_mutex_lock() renvoie EOWNERDEAD\\en\");\n"
" printf(\"[main] Maintenant rendre le mutex cohérent\\en\");\n"
" s = pthread_mutex_consistent(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_consistent\");\n"
" printf(\"[main] Le mutex est maintenant cohérent ; déverrouillage\\en\");\n"
" s = pthread_mutex_unlock(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_unlock\");\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
" } else if (s == 0) {\n"
" printf(\"[main] pthread_mutex_lock() réussit de façon inattendue\\en\");\n"
" exit(EXIT_FAILURE);\n"
" } else {\n"
" printf(\"[main] pthread_mutex_lock() échoue de façon inattendue\\en\");\n"
" handle_error_en(s, \"pthread_mutex_lock\");\n"
" }\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(2), B(2), "
"B(3), B(3), "
"B(3), B(7)"
msgstr ""
"B(2), B(2), "
"B(3), B(3), "
"B(3), B(7)"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "2022-12-04"
msgstr "4 décembre 2022"
#. 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 ""
"B() and B() were "
"added in glibc 2.12."
msgstr ""
"B() et B() ont été "
"ajoutées dans la glibc version 2.12."
#. type: SH
#: debian-bookworm
#, no-wrap
msgid "NOTES"
msgstr "NOTES"
#. 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 Eunistd.hE\n"
msgstr ""
"#include Eerrno.hE\n"
"#include Epthread.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.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 pthread_mutex_t mtx;\n"
msgstr "static pthread_mutex_t mtx;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void *\n"
"original_owner_thread(void *ptr)\n"
"{\n"
" printf(\"[original owner] Setting lock...\\en\");\n"
" pthread_mutex_lock(&mtx);\n"
" printf(\"[original owner] Locked. Now exiting without unlocking.\\en\");\n"
" pthread_exit(NULL);\n"
"}\n"
msgstr ""
"static void *\n"
"original_owner_thread(void *ptr)\n"
"{\n"
" printf(\"[original owner] Mise en place du verrou...\\en\");\n"
" pthread_mutex_lock(&mtx);\n"
" printf(\"[original owner] Verrouillé. Sortie sans déverrouillage.\\en\");\n"
" pthread_exit(NULL);\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
" pthread_t thr;\n"
" pthread_mutexattr_t attr;\n"
" int s;\n"
msgstr ""
"int\n"
"main(void)\n"
"{\n"
" pthread_t thr;\n"
" pthread_mutexattr_t attr;\n"
" int s;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " pthread_mutexattr_init(&attr);\n"
msgstr " pthread_mutexattr_init(&attr);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);\n"
msgstr " pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " pthread_mutex_init(&mtx, &attr);\n"
msgstr " pthread_mutex_init(&mtx, &attr);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " pthread_create(&thr, NULL, original_owner_thread, NULL);\n"
msgstr " pthread_create(&thr, NULL, original_owner_thread, NULL);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " sleep(2);\n"
msgstr " sleep(2);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " /* \"original_owner_thread\" should have exited by now. */\n"
msgstr " /* \"original_owner_thread\" devrait avoir quitté maintenant. */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" printf(\"[main] Attempting to lock the robust mutex.\\en\");\n"
" s = pthread_mutex_lock(&mtx);\n"
" if (s == EOWNERDEAD) {\n"
" printf(\"[main] pthread_mutex_lock() returned EOWNERDEAD\\en\");\n"
" printf(\"[main] Now make the mutex consistent\\en\");\n"
" s = pthread_mutex_consistent(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_consistent\");\n"
" printf(\"[main] Mutex is now consistent; unlocking\\en\");\n"
" s = pthread_mutex_unlock(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_unlock\");\n"
msgstr ""
" printf(\"[main] Tentative de verrouillage du mutex robuste.\\en\");\n"
" s = pthread_mutex_lock(&mtx);\n"
" if (s == EOWNERDEAD) {\n"
" printf(\"[main] pthread_mutex_lock() renvoie EOWNERDEAD\\en\");\n"
" printf(\"[main] Maintenant rendre le mutex cohérent\\en\");\n"
" s = pthread_mutex_consistent(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_consistent\");\n"
" printf(\"[main] Le mutex est maintenant cohérent ; déverrouillage\\en\");\n"
" s = pthread_mutex_unlock(&mtx);\n"
" if (s != 0)\n"
" handle_error_en(s, \"pthread_mutex_unlock\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
" } else if (s == 0) {\n"
" printf(\"[main] pthread_mutex_lock() unexpectedly succeeded\\en\");\n"
" exit(EXIT_FAILURE);\n"
" } else {\n"
" printf(\"[main] pthread_mutex_lock() unexpectedly failed\\en\");\n"
" handle_error_en(s, \"pthread_mutex_lock\");\n"
" }\n"
"}\n"
msgstr ""
" exit(EXIT_SUCCESS);\n"
" } else if (s == 0) {\n"
" printf(\"[main] pthread_mutex_lock() réussit de façon inattendue\\en\");\n"
" exit(EXIT_FAILURE);\n"
" } else {\n"
" printf(\"[main] pthread_mutex_lock() échoue de façon inattendue\\en\");\n"
" handle_error_en(s, \"pthread_mutex_lock\");\n"
" }\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)"