'\" t
.\" Copyright (C) 2006 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
.TH SEM_GETVALUE 3 2017-09-15 "Linux" "Linux Programmer's Manual"
.SH NAME
sem_getvalue \- get the value of a semaphore
.SH SYNOPSIS
.nf
.B #include <semaphore.h>
.PP
.BI "int sem_getvalue(sem_t *" sem ", int *" sval );
.fi
.PP
Link with \fI\-pthread\fP.
.SH DESCRIPTION
.BR sem_getvalue ()
places the current value of the semaphore pointed to
.I sem
into the integer pointed to by
.IR sval .
.PP
If one or more processes or threads are blocked
waiting to lock the semaphore with
.BR sem_wait (3),
POSIX.1 permits two possibilities for the value returned in
.IR sval :
either 0 is returned;
or a negative number whose absolute value is the count
of the number of processes and threads currently blocked in
.BR sem_wait (3).
Linux adopts the former behavior.
.SH RETURN VALUE
.BR sem_getvalue ()
returns 0 on success;
on error, \-1 is returned and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EINVAL
.I sem
is not a valid semaphore.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lb lb lb
l l l.
Interface	Attribute	Value
T{
.BR sem_getvalue ()
T}	Thread safety	MT-Safe
.TE
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
.SH NOTES
The value of the semaphore may already have changed by the time
.BR sem_getvalue ()
returns.
.SH SEE ALSO
.BR sem_post (3),
.BR sem_wait (3),
.BR sem_overview (7)
