# 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 "B()" msgid "pthread_getattr_np" msgstr "B()" #. 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_getattr_np - get attributes of created thread" msgstr "pthread_getattr_np - возвращает атрибуты созданной нити" #. 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<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" "B<#include Epthread.hE>\n" msgstr "" "B<#define _GNU_SOURCE> /* Смотрите feature_test_macros(7) */\n" "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<, pthread_attr_t *>IB<);>\n" msgstr "BIB<, pthread_attr_t *>IB<);>\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 initializes the thread attributes " "object referred to by I so that it contains actual attribute values " "describing the running thread I." msgstr "" "Функция B() инициализирует объект атрибутов нити, на " "который указывает I, так, чтобы он содержал актуальные значения " "атрибутов выполняющейся нити I." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The returned attribute values may differ from the corresponding attribute " "values passed in the I object that was used to create the thread using " "B(3). In particular, the following attributes may differ:" msgstr "" "Возвращаемые значения атрибутов могут отличаться от соответствующих значений " "атрибутов переданных в объекте I, который использовался при создании " "нити с помощью B(3). В частности, могут отличаться " "следующие атрибуты:" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "\\[bu]" msgstr "\\[bu]" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "the detach state, since a joinable thread may have detached itself after " "creation;" msgstr "" "состояние отсоединения, так как присоединяемая нить могла сама отсоединиться " "после создания;" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "the stack size, which the implementation may align to a suitable boundary." msgstr "" "размер стека, так как реализация нитей могла выронить значение по уместной " "границе." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "and the guard size, which the implementation may round upward to a multiple " "of the page size, or ignore (i.e., treat as 0), if the application is " "allocating its own stack." msgstr "" "размер защиты, так как реализация нитей могла округлить значение в большую " "сторону до кратного размера страницы, или проигнорировать (т. е., посчитать " "за 0), если приложение само выделяет себе стек." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Furthermore, if the stack address attribute was not set in the thread " "attributes object used to create the thread, then the returned thread " "attributes object will report the actual stack address that the " "implementation selected for the thread." msgstr "" "Кроме этого, если атрибут адреса стека не был указан в объекте атрибутов " "нити при создании нити, то возвращаемый объект атрибутов нити будет " "содержать актуальный адрес стека, который был выбран реализацией для нити." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When the thread attributes object returned by B() is no " "longer required, it should be destroyed using B(3)." msgstr "" "Когда объект атрибутов нити, возвращаемый 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, this function returns 0; on error, it returns a nonzero error " "number." msgstr "" "При успешном выполнении функция возвращает 0; при ошибке возвращается " "ненулевой номер ошибки." #. 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" #. Can happen (but unlikely) while trying to allocate memory for cpuset #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Insufficient memory." msgstr "Недостаточно памяти." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In addition, if I refers to the main thread, then " "B() can fail because of errors from various underlying " "calls: B(3), if I can't be opened; and " "B(2), if the B resource limit is not supported." msgstr "" "Также, если I указывает на главную нить, то B() " "может завершиться с ошибкой из-за ошибок различных используемых вызовов: " "B(3), если невозможно открыть I; B(2), " "если не поддерживается ограничение ресурса B." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ATTRIBUTES" msgstr "АТРИБУТЫ" #. 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 "Описание терминов данного раздела смотрите в 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 "Интерфейс" #. 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 "Атрибут" #. 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 "Значение" #. 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()" msgstr "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 "Безвредность в нитях" #. 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 "СТАНДАРТЫ" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "This function is a nonstandard GNU extension; hence the suffix \"_np" #| "\" (nonportable) in the name." msgid "GNU; hence the suffix \"_np\" (nonportable) in the name." msgstr "" "Эта функция является нестандартным расширением GNU, о чём свидетельствует " "наличие суффикса «_np» (nonportable)." #. 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 "Since glibc 2.2.2:" msgid "glibc 2.2.3." msgstr "Начиная с glibc 2.2.2:" #. 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 B(). The " "program creates a thread that then uses B() to retrieve " "and display its guard size, stack address, and stack size attributes. " "Command-line arguments can be used to set these attributes to values other " "than the default when creating the thread. The shell sessions below " "demonstrate the use of the program." msgstr "" "В программе, показанной далее, демонстрируется использование " "B(). Программа создаёт нить, которая, затем, использует " "B() для получения и показа своих атрибутов размера " "защиты, адреса стека и размера стека. Аргументами командной строки можно " "изменить эти атрибуты. Работа программы показана далее." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the first run, on an x86-32 system, a thread is created using default " "attributes:" msgstr "" "В этом запуске на системе x86-32 нить создаётся со значениями атрибутов по " "умолчанию:" #. 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> # No stack limit ==E default stack size is 2 MB\n" "unlimited\n" "$B< ./a.out>\n" "Attributes of created thread:\n" " Guard size = 4096 bytes\n" " Stack address = 0x40196000 (EOS = 0x40397000)\n" " Stack size = 0x201000 (2101248) bytes\n" msgstr "" "$B< ulimit -s> # Без ограничения стека ==E\n" " # размер стека по умолчанию 2 МБ\n" "unlimited\n" "$B< ./a.out>\n" "Атрибуты созданной нити:\n" " Размер защиты = 4096 байт\n" " Адрес стека = 0x40196000 (EOS = 0x40397000)\n" " Размер стека = 0x201000 (2101248) байт\n" #. 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, we see that if a guard size is specified, it is " "rounded up to the next multiple of the system page size (4096 bytes on " "x86-32):" msgstr "" "В этом запуске мы видим, что при задании размера защиты его значение " "округляется до значение следующего кратного размера системной страницы (4096 " "байт на x86-32):" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "$B< ulimit -s> # No stack limit ==E default stack size is 2 MB\n" #| "unlimited\n" #| "$B< ./a.out>\n" #| "Attributes of created thread:\n" #| " Guard size = 4096 bytes\n" #| " Stack address = 0x40196000 (EOS = 0x40397000)\n" #| " Stack size = 0x201000 (2101248) bytes\n" msgid "" "$B< ./a.out -g 4097>\n" "Thread attributes object after initializations:\n" " Guard size = 4097 bytes\n" " Stack address = (nil)\n" " Stack size = 0x0 (0) bytes\n" "\\&\n" "Attributes of created thread:\n" " Guard size = 8192 bytes\n" " Stack address = 0x40196000 (EOS = 0x40397000)\n" " Stack size = 0x201000 (2101248) bytes\n" msgstr "" "$B< ulimit -s> # Без ограничения стека ==E\n" " # размер стека по умолчанию 2 МБ\n" "unlimited\n" "$B< ./a.out>\n" "Атрибуты созданной нити:\n" " Размер защиты = 4096 байт\n" " Адрес стека = 0x40196000 (EOS = 0x40397000)\n" " Размер стека = 0x201000 (2101248) байт\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the last run, the program manually allocates a stack for the thread. In " "this case, the guard size attribute is ignored." msgstr "" "В этом запуске программа вручную выделяет стек для нити. В этом случае " "атрибут размера защиты игнорируется." #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "Thread attributes object after initializations:\n" #| " Guard size = 4096 bytes\n" #| " Stack address = 0x804d000 (EOS = 0x8055000)\n" #| " Stack size = 0x8000 (32768) bytes\n" msgid "" "$B< ./a.out -g 4096 -s 0x8000 -a>\n" "Allocated thread stack at 0x804d000\n" "\\&\n" "Thread attributes object after initializations:\n" " Guard size = 4096 bytes\n" " Stack address = 0x804d000 (EOS = 0x8055000)\n" " Stack size = 0x8000 (32768) bytes\n" "\\&\n" "Attributes of created thread:\n" " Guard size = 0 bytes\n" " Stack address = 0x804d000 (EOS = 0x8055000)\n" " Stack size = 0x8000 (32768) bytes\n" msgstr "" "Объект атрибутов нити после инициализации:\n" " Размер защиты = 4096 байт\n" " Адрес стека = 0x804d000 (EOS = 0x8055000)\n" " Размер стека = 0x8000 (32768) байт\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 "" "#define _GNU_SOURCE /* To get pthread_getattr_np() declaration */\n" "#include Eerr.hE\n" "#include Eerrno.hE\n" "#include Epthread.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" "\\&\n" "static void\n" "display_stack_related_attributes(pthread_attr_t *attr, char *prefix)\n" "{\n" " int s;\n" " size_t stack_size, guard_size;\n" " void *stack_addr;\n" "\\&\n" " s = pthread_attr_getguardsize(attr, &guard_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_getguardsize\");\n" " printf(\"%sGuard size = %zu bytes\\en\", prefix, guard_size);\n" "\\&\n" " s = pthread_attr_getstack(attr, &stack_addr, &stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_getstack\");\n" " printf(\"%sStack address = %p\", prefix, stack_addr);\n" " if (stack_size E 0)\n" " printf(\" (EOS = %p)\", (char *) stack_addr + stack_size);\n" " printf(\"\\en\");\n" " printf(\"%sStack size = %#zx (%zu) bytes\\en\",\n" " prefix, stack_size, stack_size);\n" "}\n" "\\&\n" "static void\n" "display_thread_attributes(pthread_t thread, char *prefix)\n" "{\n" " int s;\n" " pthread_attr_t attr;\n" "\\&\n" " s = pthread_getattr_np(thread, &attr);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_getattr_np\");\n" "\\&\n" " display_stack_related_attributes(&attr, prefix);\n" "\\&\n" " s = pthread_attr_destroy(&attr);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_destroy\");\n" "}\n" "\\&\n" "static void * /* Start function for thread we create */\n" "thread_start(void *arg)\n" "{\n" " printf(\"Attributes of created thread:\\en\");\n" " display_thread_attributes(pthread_self(), \"\\et\");\n" "\\&\n" " exit(EXIT_SUCCESS); /* Terminate all threads */\n" "}\n" "\\&\n" "static void\n" "usage(char *pname, char *msg)\n" "{\n" " if (msg != NULL)\n" " fputs(msg, stderr);\n" " fprintf(stderr, \"Usage: %s [-s stack-size [-a]]\"\n" " \" [-g guard-size]\\en\", pname);\n" " fprintf(stderr, \"\\et\\et-a means program should allocate stack\\en\");\n" " exit(EXIT_FAILURE);\n" "}\n" "\\&\n" "static pthread_attr_t * /* Get thread attributes from command line */\n" "get_thread_attributes_from_cl(int argc, char *argv[],\n" " pthread_attr_t *attrp)\n" "{\n" " int s, opt, allocate_stack;\n" " size_t stack_size, guard_size;\n" " void *stack_addr;\n" " pthread_attr_t *ret_attrp = NULL; /* Set to attrp if we initialize\n" " a thread attributes object */\n" " allocate_stack = 0;\n" " stack_size = -1;\n" " guard_size = -1;\n" "\\&\n" " while ((opt = getopt(argc, argv, \"ag:s:\")) != -1) {\n" " switch (opt) {\n" " case \\[aq]a\\[aq]: allocate_stack = 1; break;\n" " case \\[aq]g\\[aq]: guard_size = strtoul(optarg, NULL, 0); break;\n" " case \\[aq]s\\[aq]: stack_size = strtoul(optarg, NULL, 0); break;\n" " default: usage(argv[0], NULL);\n" " }\n" " }\n" "\\&\n" " if (allocate_stack && stack_size == -1)\n" " usage(argv[0], \"Specifying -a without -s makes no sense\\en\");\n" "\\&\n" " if (argc E optind)\n" " usage(argv[0], \"Extraneous command-line arguments\\en\");\n" "\\&\n" " if (stack_size != -1 || guard_size E 0) {\n" " ret_attrp = attrp;\n" "\\&\n" " s = pthread_attr_init(attrp);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_init\");\n" " }\n" "\\&\n" " if (stack_size != -1) {\n" " if (!allocate_stack) {\n" " s = pthread_attr_setstacksize(attrp, stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_setstacksize\");\n" " } else {\n" " s = posix_memalign(&stack_addr, sysconf(_SC_PAGESIZE),\n" " stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"posix_memalign\");\n" " printf(\"Allocated thread stack at %p\\en\\en\", stack_addr);\n" "\\&\n" " s = pthread_attr_setstack(attrp, stack_addr, stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_setstacksize\");\n" " }\n" " }\n" "\\&\n" " if (guard_size != -1) {\n" " s = pthread_attr_setguardsize(attrp, guard_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_setstacksize\");\n" " }\n" "\\&\n" " return ret_attrp;\n" "}\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int s;\n" " pthread_t thr;\n" " pthread_attr_t attr;\n" " pthread_attr_t *attrp = NULL; /* Set to &attr if we initialize\n" " a thread attributes object */\n" "\\&\n" " attrp = get_thread_attributes_from_cl(argc, argv, &attr);\n" "\\&\n" " if (attrp != NULL) {\n" " printf(\"Thread attributes object after initializations:\\en\");\n" " display_stack_related_attributes(attrp, \"\\et\");\n" " printf(\"\\en\");\n" " }\n" "\\&\n" " s = pthread_create(&thr, attrp, &thread_start, NULL);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_create\");\n" "\\&\n" " if (attrp != NULL) {\n" " s = pthread_attr_destroy(attrp);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_destroy\");\n" " }\n" "\\&\n" " pause(); /* Terminates when other thread calls exit() */\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(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), B(7)" msgstr "" "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), " "B(3), B(3), B(7)" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "5 февраля 2023 г." #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Linux man-pages 6.03" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "ВЕРСИИ" #. type: Plain text #: debian-bookworm #, fuzzy #| msgid "This function is available in glibc since version 2.2.3." msgid "This function is available since glibc 2.2.3." msgstr "Эта функция доступна в glibc начиная с версии 2.2.3." #. type: Plain text #: debian-bookworm msgid "" "This function is a nonstandard GNU extension; hence the suffix \"_np" "\" (nonportable) in the name." msgstr "" "Эта функция является нестандартным расширением GNU, о чём свидетельствует " "наличие суффикса «_np» (nonportable)." #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "$B< ./a.out -g 4097>\n" "Thread attributes object after initializations:\n" " Guard size = 4097 bytes\n" " Stack address = (nil)\n" " Stack size = 0x0 (0) bytes\n" msgstr "" "$B< ./a.out -g 4097>\n" "Объект атрибутов нити после инициализации:\n" " Размер защиты = 4097 байт\n" " Адрес стека = (nil)\n" " Размер стека = 0x0 (0) байт\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "Attributes of created thread:\n" " Guard size = 8192 bytes\n" " Stack address = 0x40196000 (EOS = 0x40397000)\n" " Stack size = 0x201000 (2101248) bytes\n" msgstr "" "Атрибуты созданной нити:\n" " Размер защиты = 8192 байт\n" " Адрес стека = 0x40196000 (EOS = 0x40397000)\n" " Размер стека = 0x201000 (2101248) байт\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "$B< ./a.out -g 4096 -s 0x8000 -a>\n" "Allocated thread stack at 0x804d000\n" msgstr "" "$B< ./a.out -g 4096 -s 0x8000 -a>\n" "Выделен стек нити по адресу 0x804d000\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "Thread attributes object after initializations:\n" " Guard size = 4096 bytes\n" " Stack address = 0x804d000 (EOS = 0x8055000)\n" " Stack size = 0x8000 (32768) bytes\n" msgstr "" "Объект атрибутов нити после инициализации:\n" " Размер защиты = 4096 байт\n" " Адрес стека = 0x804d000 (EOS = 0x8055000)\n" " Размер стека = 0x8000 (32768) байт\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "Attributes of created thread:\n" " Guard size = 0 bytes\n" " Stack address = 0x804d000 (EOS = 0x8055000)\n" " Stack size = 0x8000 (32768) bytes\n" msgstr "" "Атрибуты созданной нити:\n" " Размер защиты = 0 байт\n" " Адрес стека = 0x804d000 (EOS = 0x8055000)\n" " Размер стека = 0x8000 (32768) байт\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "#define _GNU_SOURCE /* To get pthread_getattr_np() declaration */\n" #| "#include Epthread.hE\n" #| "#include Estdio.hE\n" #| "#include Estdlib.hE\n" #| "#include Eunistd.hE\n" #| "#include Eerrno.hE\n" msgid "" "#define _GNU_SOURCE /* To get pthread_getattr_np() declaration */\n" "#include Eerr.hE\n" "#include Eerrno.hE\n" "#include Epthread.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" msgstr "" "#define _GNU_SOURCE /* для объявления pthread_getattr_np() */\n" "#include Epthread.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" "#include Eerrno.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static void\n" "display_stack_related_attributes(pthread_attr_t *attr, char *prefix)\n" "{\n" " int s;\n" " size_t stack_size, guard_size;\n" " void *stack_addr;\n" msgstr "" "static void\n" "display_stack_related_attributes(pthread_attr_t *attr, char *prefix)\n" "{\n" " int s;\n" " size_t stack_size, guard_size;\n" " void *stack_addr;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_attr_getguardsize(attr, &guard_size);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_getguardsize\");\n" #| " printf(\"%sGuard size = %d bytes\\en\", prefix, guard_size);\n" msgid "" " s = pthread_attr_getguardsize(attr, &guard_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_getguardsize\");\n" " printf(\"%sGuard size = %zu bytes\\en\", prefix, guard_size);\n" msgstr "" " s = pthread_attr_getguardsize(attr, &guard_size);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_getguardsize\");\n" " printf(\"%sРазмер защиты = %d байт\\en\", prefix, guard_size);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_attr_getstack(attr, &stack_addr, &stack_size);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_getstack\");\n" #| " printf(\"%sStack address = %p\", prefix, stack_addr);\n" #| " if (stack_size E 0)\n" #| " printf(\" (EOS = %p)\", (char *) stack_addr + stack_size);\n" #| " printf(\"\\en\");\n" #| " printf(\"%sStack size = 0x%x (%d) bytes\\en\",\n" #| " prefix, stack_size, stack_size);\n" #| "}\n" msgid "" " s = pthread_attr_getstack(attr, &stack_addr, &stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_getstack\");\n" " printf(\"%sStack address = %p\", prefix, stack_addr);\n" " if (stack_size E 0)\n" " printf(\" (EOS = %p)\", (char *) stack_addr + stack_size);\n" " printf(\"\\en\");\n" " printf(\"%sStack size = %#zx (%zu) bytes\\en\",\n" " prefix, stack_size, stack_size);\n" "}\n" msgstr "" " s = pthread_attr_getstack(attr, &stack_addr, &stack_size);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_getstack\");\n" " printf(\"%sАдрес стека = %p\", prefix, stack_addr);\n" " if (stack_size E 0)\n" " printf(\" (EOS = %p)\", (char *) stack_addr + stack_size);\n" " printf(\"\\en\");\n" " printf(\"%sРазмер стека = 0x%x (%d) байт\\en\",\n" " prefix, stack_size, stack_size);\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static void\n" "display_thread_attributes(pthread_t thread, char *prefix)\n" "{\n" " int s;\n" " pthread_attr_t attr;\n" msgstr "" "static void\n" "display_thread_attributes(pthread_t thread, char *prefix)\n" "{\n" " int s;\n" " pthread_attr_t attr;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_getattr_np(thread, &attr);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_getattr_np\");\n" msgid "" " s = pthread_getattr_np(thread, &attr);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_getattr_np\");\n" msgstr "" " s = pthread_getattr_np(thread, &attr);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_getattr_np\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " display_stack_related_attributes(&attr, prefix);\n" msgstr " display_stack_related_attributes(&attr, prefix);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_attr_destroy(&attr);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_destroy\");\n" #| "}\n" msgid "" " s = pthread_attr_destroy(&attr);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_destroy\");\n" "}\n" msgstr "" " s = pthread_attr_destroy(&attr);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_destroy\");\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static void * /* Start function for thread we create */\n" "thread_start(void *arg)\n" "{\n" " printf(\"Attributes of created thread:\\en\");\n" " display_thread_attributes(pthread_self(), \"\\et\");\n" msgstr "" "static void * /* Начальная функция создаваемой нити */\n" "thread_start(void *arg)\n" "{\n" " printf(\"Атрибуты созданной нити:\\en\");\n" " display_thread_attributes(pthread_self(), \"\\et\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS); /* Terminate all threads */\n" "}\n" msgstr "" " exit(EXIT_SUCCESS); /* Завершить все нити */\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static void\n" "usage(char *pname, char *msg)\n" "{\n" " if (msg != NULL)\n" " fputs(msg, stderr);\n" " fprintf(stderr, \"Usage: %s [-s stack-size [-a]]\"\n" " \" [-g guard-size]\\en\", pname);\n" " fprintf(stderr, \"\\et\\et-a means program should allocate stack\\en\");\n" " exit(EXIT_FAILURE);\n" "}\n" msgstr "" "static void\n" "usage(char *pname, char *msg)\n" "{\n" " if (msg != NULL)\n" " fputs(msg, stderr);\n" " fprintf(stderr, \"Использование: %s [-s stack-size [-a]]\"\n" " \" [-g guard-size]\\en\", pname);\n" " fprintf(stderr, \"\\et\\et-a означает, что программа выделяет стек\\en\");\n" " exit(EXIT_FAILURE);\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "static pthread_attr_t * /* Get thread attributes from command line */\n" #| "get_thread_attributes_from_cl(int argc, char *argv[],\n" #| " pthread_attr_t *attrp)\n" #| "{\n" #| " int s, opt, allocate_stack;\n" #| " long stack_size, guard_size;\n" #| " void *stack_addr;\n" #| " pthread_attr_t *ret_attrp = NULL; /* Set to attrp if we initialize\n" #| " a thread attributes object */\n" #| " allocate_stack = 0;\n" #| " stack_size = -1;\n" #| " guard_size = -1;\n" msgid "" "static pthread_attr_t * /* Get thread attributes from command line */\n" "get_thread_attributes_from_cl(int argc, char *argv[],\n" " pthread_attr_t *attrp)\n" "{\n" " int s, opt, allocate_stack;\n" " size_t stack_size, guard_size;\n" " void *stack_addr;\n" " pthread_attr_t *ret_attrp = NULL; /* Set to attrp if we initialize\n" " a thread attributes object */\n" " allocate_stack = 0;\n" " stack_size = -1;\n" " guard_size = -1;\n" msgstr "" "static pthread_attr_t * /* получить атрибуты нити из ком. строки */\n" "get_thread_attributes_from_cl(int argc, char *argv[],\n" " pthread_attr_t *attrp)\n" "{\n" " int s, opt, allocate_stack;\n" " long stack_size, guard_size;\n" " void *stack_addr;\n" " pthread_attr_t *ret_attrp = NULL; /* задаёт attrp, если мы\n" " инициализируем объект\n" " атрибутов нити */\n" " allocate_stack = 0;\n" " stack_size = -1;\n" " guard_size = -1;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " while ((opt = getopt(argc, argv, \"ag:s:\")) != -1) {\n" #| " switch (opt) {\n" #| " case \\(aqa\\(aq: allocate_stack = 1; break;\n" #| " case \\(aqg\\(aq: guard_size = strtoul(optarg, NULL, 0); break;\n" #| " case \\(aqs\\(aq: stack_size = strtoul(optarg, NULL, 0); break;\n" #| " default: usage(argv[0], NULL);\n" #| " }\n" #| " }\n" msgid "" " while ((opt = getopt(argc, argv, \"ag:s:\")) != -1) {\n" " switch (opt) {\n" " case \\[aq]a\\[aq]: allocate_stack = 1; break;\n" " case \\[aq]g\\[aq]: guard_size = strtoul(optarg, NULL, 0); break;\n" " case \\[aq]s\\[aq]: stack_size = strtoul(optarg, NULL, 0); break;\n" " default: usage(argv[0], NULL);\n" " }\n" " }\n" msgstr "" " while ((opt = getopt(argc, argv, \"ag:s:\")) != -1) {\n" " switch (opt) {\n" " case \\(aqa\\(aq: allocate_stack = 1; break;\n" " case \\(aqg\\(aq: guard_size = strtoul(optarg, NULL, 0); break;\n" " case \\(aqs\\(aq: stack_size = strtoul(optarg, NULL, 0); break;\n" " default: usage(argv[0], NULL);\n" " }\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (allocate_stack && stack_size == -1)\n" " usage(argv[0], \"Specifying -a without -s makes no sense\\en\");\n" msgstr "" " if (allocate_stack && stack_size == -1)\n" " usage(argv[0], \"Указывать -a без -s не имеет смысла\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc E optind)\n" " usage(argv[0], \"Extraneous command-line arguments\\en\");\n" msgstr "" " if (argc E optind)\n" " usage(argv[0], \"Посторонние аргументы в командной строке\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (stack_size E= 0 || guard_size E 0) {\n" " ret_attrp = attrp;\n" msgstr "" " if (stack_size E= 0 || guard_size E 0) {\n" " ret_attrp = attrp;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_attr_init(attrp);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_init\");\n" #| " }\n" msgid "" " s = pthread_attr_init(attrp);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_init\");\n" " }\n" msgstr "" " s = pthread_attr_init(attrp);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_init\");\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " if (stack_size E= 0) {\n" #| " if (!allocate_stack) {\n" #| " s = pthread_attr_setstacksize(attrp, stack_size);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_setstacksize\");\n" #| " } else {\n" #| " s = posix_memalign(&stack_addr, sysconf(_SC_PAGESIZE),\n" #| " stack_size);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"posix_memalign\");\n" #| " printf(\"Allocated thread stack at %p\\en\\en\", stack_addr);\n" msgid "" " if (stack_size E= 0) {\n" " if (!allocate_stack) {\n" " s = pthread_attr_setstacksize(attrp, stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_setstacksize\");\n" " } else {\n" " s = posix_memalign(&stack_addr, sysconf(_SC_PAGESIZE),\n" " stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"posix_memalign\");\n" " printf(\"Allocated thread stack at %p\\en\\en\", stack_addr);\n" msgstr "" " if (stack_size E= 0) {\n" " if (!allocate_stack) {\n" " s = pthread_attr_setstacksize(attrp, stack_size);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_setstacksize\");\n" " } else {\n" " s = posix_memalign(&stack_addr, sysconf(_SC_PAGESIZE),\n" " stack_size);\n" " if (s != 0)\n" " handle_error_en(s, \"posix_memalign\");\n" " printf(\"Выделен стек нити по адресу %p\\en\\en\", stack_addr);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_attr_setstack(attrp, stack_addr, stack_size);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_setstacksize\");\n" #| " }\n" #| " }\n" msgid "" " s = pthread_attr_setstack(attrp, stack_addr, stack_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_setstacksize\");\n" " }\n" " }\n" msgstr "" " s = pthread_attr_setstack(attrp, stack_addr, stack_size);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_setstacksize\");\n" " }\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " if (guard_size E= 0) {\n" #| " s = pthread_attr_setguardsize(attrp, guard_size);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_setstacksize\");\n" #| " }\n" msgid "" " if (guard_size E= 0) {\n" " s = pthread_attr_setguardsize(attrp, guard_size);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_setstacksize\");\n" " }\n" msgstr "" " if (guard_size E= 0) {\n" " s = pthread_attr_setguardsize(attrp, guard_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 "" " return ret_attrp;\n" "}\n" msgstr "" " return ret_attrp;\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;\n" " pthread_t thr;\n" " pthread_attr_t attr;\n" " pthread_attr_t *attrp = NULL; /* Set to &attr if we initialize\n" " a thread attributes object */\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int s;\n" " pthread_t thr;\n" " pthread_attr_t attr;\n" " pthread_attr_t *attrp = NULL; /* задаёт &attr, если мы\n" " инициализируем объект\n" " атрибутов нити */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " attrp = get_thread_attributes_from_cl(argc, argv, &attr);\n" msgstr " attrp = get_thread_attributes_from_cl(argc, argv, &attr);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (attrp != NULL) {\n" " printf(\"Thread attributes object after initializations:\\en\");\n" " display_stack_related_attributes(attrp, \"\\et\");\n" " printf(\"\\en\");\n" " }\n" msgstr "" " if (attrp != NULL) {\n" " printf(\"Объект атрибутов нити после инициализации:\\en\");\n" " display_stack_related_attributes(attrp, \"\\et\");\n" " printf(\"\\en\");\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " s = pthread_create(&thr, attrp, &thread_start, NULL);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_create\");\n" msgid "" " s = pthread_create(&thr, attrp, &thread_start, NULL);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_create\");\n" msgstr "" " s = pthread_create(&thr, attrp, &thread_start, NULL);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_create\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " if (attrp != NULL) {\n" #| " s = pthread_attr_destroy(attrp);\n" #| " if (s != 0)\n" #| " handle_error_en(s, \"pthread_attr_destroy\");\n" #| " }\n" msgid "" " if (attrp != NULL) {\n" " s = pthread_attr_destroy(attrp);\n" " if (s != 0)\n" " errc(EXIT_FAILURE, s, \"pthread_attr_destroy\");\n" " }\n" msgstr "" " if (attrp != NULL) {\n" " s = pthread_attr_destroy(attrp);\n" " if (s != 0)\n" " handle_error_en(s, \"pthread_attr_destroy\");\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " pause(); /* Terminates when other thread calls exit() */\n" "}\n" msgstr "" " pause(); /* Завершается, когда другая нить вызывает exit() */\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"