.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2006 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sem_init 3 "2 мая 2024 г." "Linux man\-pages 6.8" .SH ИМЯ sem_init \- инициализирует безымянный семафор .SH LIBRARY POSIX threads library (\fIlibpthread\fP, \fI\-lpthread\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBint sem_init(sem_t *\fP\fIsem\fP\fB, int \fP\fIpshared\fP\fB, unsigned int \fP\fIvalue\fP\fB);\fP .fi .SH ОПИСАНИЕ Функция \fBsem_init\fP() инициализирует безымянный семафор по адресу, указанному в \fIsem\fP. В аргументе \fIvalue\fP задаётся начальное значение семафора. .P Аргументом \fIpshared\fP определяется, будет ли данный семафор доступен в нитях процесса или в разных процессах. .P Если значение \fIpshared\fP равно 0, то семафор будет коллективно использоваться в нитях процесса, и должен располагаться по адресу, который доступен из всех нитей (например, глобальная переменная или динамически выделенная из кучи переменная). .P Если значение \fIpshared\fP не равно нулю, то семафор будет коллективно использоваться несколькими процессами, и должен располагаться в области общей памяти (смотрите \fBshm_open\fP(3), \fBmmap\fP(2) и \fBshmget\fP(2)) (так как потомок, создаваемый \fBfork\fP(2), наследует отображение памяти родителя, то ему также доступен и семафор). Любой процесс, имеющий доступ к области общей памяти, может обращаться к семафору с помощью \fBsem_post\fP(3), \fBsem_wait\fP(3) и т. п. функций. .P Инициализация семафора, который уже был инициализирован, приводит к непредсказуемым результатам. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBsem_init\fP() возвращается 0; при ошибке возвращается \-1, а в \fIerrno\fP содержится код ошибки. .SH ОШИБКИ .TP \fBEINVAL\fP Значение \fIvalue\fP превышает \fBSEM_VALUE_MAX\fP. .TP \fBENOSYS\fP Значение \fIpshared\fP не равно нулю, то система не поддерживает семафоры, коллективно используемые процессами (смотрите \fBsem_overview\fP(7)). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBsem_init\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001. .P Странно, но в POSIX.1\-2001 не определено значение, которое должно возвращаться при успешном выполнении вызова \fBsem_init\fP(). В POSIX.1\-2008 это исправлено: при успешном выполнении должен возвращаться ноль. .SH ПРИМЕРЫ See \fBshm_open\fP(3) and \fBsem_wait\fP(3). .SH "СМОТРИТЕ ТАКЖЕ" \fBsem_destroy\fP(3), \fBsem_post\fP(3), \fBsem_wait\fP(3), \fBsem_overview\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .