CINXE.COM

sem_open

<html> <head> <title>sem_open</title> <META NAME="KEYWORDS" CONTENT="sem_open"> </head> <body BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#0000ff" ALINK="#0000ff" TEXT="#000000"> <center> <h1><b>sem_open</b></h1></center> <PRE> <STRONG><A HREF="/man3/SEM_OPEN">SEM_OPEN(3)</A></STRONG> Linux Programmer's Manual <STRONG><A HREF="/man3/SEM_OPEN">SEM_OPEN(3)</A></STRONG> NAME sem_open - initialize and open a named semaphore SYNOPSIS #include &lt;fcntl.h&gt; /* For O_* constants */ #include &lt;sys/stat.h&gt; /* For mode constants */ #include &lt;semaphore.h&gt; sem_t *sem_open(const char *name, int oflag); sem_t *sem_open(const char *name, int oflag, mode_t mode, unsigned int value); Link with -pthread. DESCRIPTION sem_open() creates a new POSIX semaphore or opens an existing sema- phore. The semaphore is identified by name. For details of the con- struction of name, see <STRONG><A HREF="/man7/sem_overview">sem_overview(7)</A></STRONG>. The oflag argument specifies flags that control the operation of the call. (Definitions of the flags values can be obtained by including &lt;fcntl.h&gt;.) If O_CREAT is specified in oflag, then the semaphore is created if it does not already exist. The owner (user ID) of the sema- phore is set to the effective user ID of the calling process. The group ownership (group ID) is set to the effective group ID of the calling process. If both O_CREAT and O_EXCL are specified in oflag, then an error is returned if a semaphore with the given name already exists. If O_CREAT is specified in oflag, then two additional arguments must be supplied. The mode argument specifies the permissions to be placed on the new semaphore, as for <STRONG><A HREF="/man2/open">open(2)</A></STRONG>. (Symbolic definitions for the per- missions bits can be obtained by including &lt;sys/stat.h&gt;.) The permis- sions settings are masked against the process umask. Both read and write permission should be granted to each class of user that will ac- cess the semaphore. The value argument specifies the initial value for the new semaphore. If O_CREAT is specified, and a semaphore with the given name already exists, then mode and value are ignored. RETURN VALUE On success, sem_open() returns the address of the new semaphore; this address is used when calling other semaphore-related functions. On er- ror, sem_open() returns SEM_FAILED, with errno set to indicate the er- ror. ERRORS EACCES The semaphore exists, but the caller does not have permission to open it. EEXIST Both O_CREAT and O_EXCL were specified in oflag, but a semaphore with this name already exists. EINVAL value was greater than SEM_VALUE_MAX. EINVAL name consists of just "/", followed by no other characters. EMFILE The per-process limit on the number of open file descriptors has been reached. ENAMETOOLONG name was too long. ENFILE The system-wide limit on the total number of open files has been reached. ENOENT The O_CREAT flag was not specified in oflag and no semaphore with this name exists; or, O_CREAT was specified, but name wasn't well formed. ENOMEM Insufficient memory. ATTRIBUTES For an explanation of the terms used in this section, see at- <STRONG><A HREF="/man7/tributes">tributes(7)</A></STRONG>. +-----------+---------------+---------+ |Interface | Attribute | Value | +-----------+---------------+---------+ |sem_open() | Thread safety | MT-Safe | +-----------+---------------+---------+ CONFORMING TO POSIX.1-2001, POSIX.1-2008. SEE ALSO <STRONG><A HREF="/man3/sem_close">sem_close(3)</A></STRONG>, <STRONG><A HREF="/man3/sem_getvalue">sem_getvalue(3)</A></STRONG>, <STRONG><A HREF="/man3/sem_post">sem_post(3)</A></STRONG>, <STRONG><A HREF="/man3/sem_unlink">sem_unlink(3)</A></STRONG>, <STRONG><A HREF="/man3/sem_wait">sem_wait(3)</A></STRONG>, <STRONG><A HREF="/man7/sem_overview">sem_overview(7)</A></STRONG> COLOPHON This page is part of release 5.05 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. Linux 2017-09-15 <STRONG><A HREF="/man3/SEM_OPEN">SEM_OPEN(3)</A></STRONG></PRE> <center> <h6>Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2025 <a href="http://www.he.net">Hurricane Electric</a>. All Rights Reserved.</h6></center> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10