Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
shmctl(2)			 System	Calls			     shmctl(2)

NAME
       shmctl -	shared memory control operations

SYNOPSIS
       #include	<sys/types.h>
       #include	<sys/ipc.h>
       #include	<sys/shm.h>

       int shmctl(int shmid, int cmd, struct shmid_ds *buf);

DESCRIPTION
       The shmctl() function provides a	variety	of shared memory control oper-
       ations as specified by cmd. The permission required for a shared	memory
       control	operation is given as {token}, where token is the type of per-
       mission needed. The types of permission are interpreted as follows:

       00400	READ by	user
       00200	WRITE by user
       00040	READ by	group
       00020	WRITE by group
       00004	READ by	others
       00002	WRITE by others

       See the Shared Memory Operation Permissions  section  of	 intro(2)  for
       more information.

       The following operations	require	the specified tokens:

       IPC_STAT	       Place  the  current  value  of  each member of the data
		       structure associated  with  shmid  into	the  structure
		       pointed	to  by buf. The	contents of this structure are
		       defined in intro(2). {READ}

       IPC_SET	       Set the value of	the  following	members	 of  the  data
		       structure  associated  with  shmid to the corresponding
		       value found in the structure pointed to by buf:

		       shm_perm.uid
		       shm_perm.gid
		       shm_perm.mode  /* access	permission bits	only */

		       This command can	be executed only by a process that has
		       appropriate privileges or an effective user ID equal to
		       the value of shm_perm.cuid or  shm_perm.uid in the data
		       structure associated with shmid.

       IPC_RMID	       Remove  the shared memory identifier specified by shmid
		       from the	system.	The segment referenced by the  identi-
		       fier will be destroyed when all processes with the seg-
		       ment attached  have  either  detached  the  segment  or
		       exited.	If  the	segment	is not attached	to any process
		       when IPC_RMID is	invoked, it will be destroyed  immedi-
		       ately.  This  command can be executed only by a process
		       that has	appropriate privileges or an effective user ID
		       equal  to the value of shm_perm.cuid or shm_perm.uid in
		       the data	structure associated with shmid.

       SHM_LOCK	       Lock the	shared memory segment specified	 by  shmid  in
		       memory.	This command can be executed only by a process
		       that has	appropriate privileges.

       SHM_UNLOCK      Unlock the shared memory	segment	 specified  by	shmid.
		       This command can	be executed only by a process that has
		       appropriate privileges.

       A shared	memory segment	must  be  explicitly  removed  using  IPC_RMID
       before the system can deallocate	it and the resources it	uses.

RETURN VALUES
       Upon  successful	 completion,  0	is returned. Otherwise,	-1 is returned
       and errno is set	to indicate the	error.

ERRORS
       The shmctl() function will fail if:

       EACCES	       The cmd argument	is equal to IPC_STAT and {READ}	opera-
		       tion permission is denied to the	calling	process.

       EFAULT	       The buf argument	points to an illegal address.

       EINVAL	       The shmid argument is not a valid shared	memory identi-
		       fier; or	the cmd	argument is not	a valid	command	or  is
		       IPC_SET	and shm_perm.uid or shm_perm.gid is not	valid.

       ENOMEM	       The cmd argument	is equal to SHM_LOCK and there is  not
		       enough memory.

       EOVERFLOW       The  cmd	 argument  is  IPC_STAT	 and uid or gid	is too
		       large to	be stored in the structure pointed to by  buf.

       EPERM	       The  cmd	 argument is equal to IPC_RMID or IPC_SET, the
		       effective user ID of the	calling	process	is  not	 equal
		       to  the	value  of shm_perm.cuid	or shm_perm.uid	in the
		       data   structure	   associated	 with	 shmid,	   and
		       {PRIV_IPC_OWNER}	 is  not asserted in the effective set
		       of the calling process.

		       The cmd argument	is equal to SHM_LOCK or	SHM_UNLOCK and
		       {PRIV_PROC_LOCK_MEMORY}	is  not	asserted in the	effec-
		       tive set	of the calling process.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       ipcs(1),	intro(2), shmget(2), shmop(2),	attributes(5),	privileges(5),
       standards(5)

SunOS 5.10			  1 Feb	2003			     shmctl(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=shmctl&sektion=2&manpath=SunOS+5.10>

home | help