# Russian translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Alexey, 2016. # Azamat Hackimov , 2014-2017. # kogamatranslator49 , 2015. # Darima Kogan , 2014. # Max Is , 2016. # Yuri Kozlov , 2011-2019. # Иван Павлов , 2017. msgid "" msgstr "" "Project-Id-Version: manpages-l10n\n" "POT-Creation-Date: 2024-06-01 06:13+0200\n" "PO-Revision-Date: 2019-10-12 08:58+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" "%100>=11 && n%100<=14)? 2 : 3);\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 #, fuzzy, no-wrap #| msgid " display_pthread_attr(&attr);\n" msgid "pthread_mutexattr_setrobust" msgstr " display_pthread_attr(&attr);\n" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 мая 2024 г." #. type: TH #: archlinux debian-unstable #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages 6.8" msgstr "Linux man-pages 6.7" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "ИМЯ" #. 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 - возвращает и " "изменяет атрибут устойчивости в объекте мьютексных атрибутов" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. 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 "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "СИНТАКСИС" #. 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 #, fuzzy, no-wrap #| msgid "" #| "BIB<,>\n" #| "B< int *>IB<);>\n" #| "BIB<,>\n" #| "B< int >IB<);>\n" 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 "" "Требования макроса тестирования свойств для glibc (см. " "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 "ОПИСАНИЕ" #. 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 "" "Функция B() помещает значение атрибута " "устойчивости (robustness) из объекта мьютексных атрибутов, на который " "указывает I, в I<*robustness>. Функция " "B() изменяет значение атрибута устойчивости в " "объекте мьютексных атрибутов, на который указывает I, на значение, " "заданное в I<*robustness>." #. 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 "" "Атрибут устойчивости определяет поведение мьютекса после того как владеющая " "нить завершает работу, но не разблокировала мьютекс. Для 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 "" "Значение по умолчанию для объекта мьютексных атрибутов. Если мьютекс " "инициализирован с атрибутом B и его владелец " "завершает работу без его разблокировки, то после этого мьютекс остаётся " "заблокированным и все последующие попытки вызова B(3) " "для этого мьютекса будут заблокированы навсегда." #. 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 "" "Если мьютекса инициализирован с атрибутом B и и его " "владелец завершает работу без его разблокировки,то все последующие попытки " "вызова B(3) для этого мьютекса будут успешно выполнены " "возвращается B, чтобы показать, что первоначальный владелец не " "существует и мьютекс находится в неопределенном состоянии. Обычно, после " "возврата B перед началом использования следующий владелец должен " "вызвать B(3) над полученным мьютексом, чтобы снова " "сделать его согласованным." #. 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 "" "Если следующий владелец разблокирует мьютекс с помощью " "B(3) до того, как сделать его согласованным, мьютекс " "станет необратимо неработоспособен и последующие попытки заблокировать его с " "помощью B(3) будут завершаться ошибкой " "B. Для такого мьютекса доступна только одна операция — " "B(3)." #. 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 "" "Если следующий владелец завершит работу до вызова " "B(3), то последующие операций " "B(3) с этим мьютексом будут по прежнему возвращать " "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 "" "Заметим, что аргумент I у B() и " "B() должен указывать на объект мьютексных " "атрибутов, который был инициализирован B(3), в " "противном случае поведение не определено." #. 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 "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" #. 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 "" "При успешном выполнении эти функции возвращают 0. При ошибке возвращается " "положительный номер ошибки." #. 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 "" "В реализации glibc функция B() всегда " "возвращает ноль." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "ОШИБКИ" #. 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 "" "Помимо B или B в " "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 "ВЕРСИИ" #. 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 "" "В реализации Linux при использовании общих для процессов устойчивых " "мьютексов ожидающая нить также получает уведомление B, если " "владелец устойчивого мьютекса выполняет B(2) без предварительной " "разблокировки мьютекса. В POSIX.1 не указана данная подробность, но такое же " "поведение также встречается и в нескольких других реализациях." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "СТАНДАРТЫ" #. 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 "ИСТОРИЯ" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "glibc 2.1. C99, POSIX.1-2001." msgid "glibc 2.12. POSIX.1-2008." msgstr "glibc 2.1. C99, POSIX.1-2001." #. 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 "" "До появления B() и " "B() в POSIX, в glibc определись следующие " "эквиваленты нестандартных функций, если определён B<_GNU_SOURCE>:" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "BIB<,>\n" #| "B< int *>IB<);>\n" #| "BIB<,>\n" #| "B< int >IB<);>\n" msgid "" "B<[[deprecated]]>\n" "BIB<,>\n" "B< int *>IB<);>\n" "B<[[deprecated]]>\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 "" "Correspondingly, the constants B and " "B were also defined." msgstr "" "Соответственно, также определены константы B и " "B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "These GNU-specific APIs, which first appeared in glibc 2.4, are nowadays " #| "obsolete and should not be used in new programs." 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 "" "Данный имеющийся только в GNU программный интерфейс, впервые появившийся в " "glibc 2.4, в настоящее время устарел и не должен использоваться в новых " "программах." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "ПРИМЕРЫ" #. 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 "" "В программе, представленной далее, показывается использование атрибута " "устойчивости в объекте мьютексных атрибутов. В этой программе нить, " "удерживающая мьютекс, завершает работу без разблокировки мьютекса. После " "этого главная нить захватывает мьютекс и получает ошибку B, " "после чего делает мьютекс согласованным." #. 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 "Пример сеанса работы с программой:" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "$ B<./a.out>\n" #| "[original owner] Setting lock...\n" #| "[original owner] Locked. Now exiting without unlocking.\n" #| "[main thread] Attempting to lock the robust mutex.\n" #| "[main thread] pthread_mutex_lock() returned EOWNERDEAD\n" #| "[main thread] Now make the mutex consistent\n" #| "[main thread] Mutex is now consistent; unlocking\n" 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" "[первый владелец] Установка блокировки…\n" "[первый владелец] Готово. Теперь выходим без разблокировки.\n" "[главная нить] Пытаемся получить заблокировать устойчивый мьютекс.\n" "[главная нить] pthread_mutex_lock() вернула EOWNERDEAD\n" "[главная нить] Теперь делаем мьютекс согласованным\n" "[главная нить] Мьютекс согласован; разблокируем\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 "Исходный код программы" #. 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 "" #. 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 "СМОТРИТЕ ТАКЖЕ" #. 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 декабря 2022 г." #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Linux man-pages 6.03" #. type: Plain text #: debian-bookworm #, fuzzy #| msgid "" #| "B() and B() " #| "were added to glibc in version 2.12." msgid "" "B() and B() were " "added in glibc 2.12." msgstr "" "Функции B() и B() " "добавлены в glibc версии 2.12." #. type: SH #: debian-bookworm #, no-wrap msgid "NOTES" msgstr "ПРИМЕЧАНИЯ" #. 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(\"[первый владелец] Установка блокировки…\\en\");\n" " pthread_mutex_lock(&mtx);\n" " printf(\"[original owner] Готово. Теперь выходим без разблокировки.\\en\");\n" " pthread_exit(NULL);\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "int\n" #| "main(int argc, char *argv[])\n" #| "{\n" #| " pthread_t thr;\n" #| " pthread_mutexattr_t attr;\n" #| " int s;\n" msgid "" "int\n" "main(void)\n" "{\n" " pthread_t thr;\n" " pthread_mutexattr_t attr;\n" " int s;\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " pthread_t thr;\n" " pthread_mutexattr_t attr;\n" " int s;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid " display_pthread_attr(&attr);\n" msgid " pthread_mutexattr_init(&attr);\n" msgstr " display_pthread_attr(&attr);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "See B(3)." msgid " pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);\n" msgstr "Смотрите B(3)." #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid " pthread_mutex_init(&mtx, &attr); /* initialize the mutex */\n" 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 #, fuzzy, no-wrap #| msgid " /* \"original_owner_thread\" should have exited by now */\n" msgid " /* \"original_owner_thread\" should have exited by now. */\n" msgstr " /* «нить_первый_владелец» к этому моменту должна завершиться */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " printf(\"[main thread] Attempting to lock the robust mutex.\\en\");\n" #| " s = pthread_mutex_lock(&mtx);\n" #| " if (s == EOWNERDEAD) {\n" #| " printf(\"[main thread] pthread_mutex_lock() returned EOWNERDEAD\\en\");\n" #| " printf(\"[main thread] 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 thread] 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" 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(\"[главная нить] Пытаемся получить заблокировать устойчивый мьютекс.\\en\");\n" " s = pthread_mutex_lock(&mtx);\n" " if (s == EOWNERDEAD) {\n" " printf(\"[главная нить] pthread_mutex_lock() вернула EOWNERDEAD\\en\");\n" " printf(\"[главная нить] Теперь делаем мьютекс согласованным\\en\");\n" " s = pthread_mutex_consistent(&mtx);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_mutex_consistent\");\n" " printf(\"[главная нить] Мьютекс согласован; разблокируем\\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 #, fuzzy, no-wrap #| msgid "" #| " exit(EXIT_SUCCESS);\n" #| " } else if (s == 0) {\n" #| " printf(\"[main thread] pthread_mutex_lock() unexpectedly succeeded\\en\");\n" #| " exit(EXIT_FAILURE);\n" #| " } else {\n" #| " printf(\"[main thread] pthread_mutex_lock() unexpectedly failed\\en\");\n" #| " handle_error_en(s, \"pthread_mutex_lock\");\n" #| " }\n" #| "}\n" 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(\"[главная нить] pthread_mutex_lock() неожиданно завершилась успешно\\en\");\n" " exit(EXIT_FAILURE);\n" " } else {\n" " printf(\"[главная нить] pthread_mutex_lock() завершилась с ошибкой\\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 октября 2023 г." #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Linux man-pages 6.06" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Linux man-pages 6.7" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "30 марта 2023 г." #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "Linux man-pages 6.04" #. type: TH #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "Linux man-pages 6.7" msgid "Linux man-pages (unreleased)" msgstr "Linux man-pages 6.7"