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

FreeBSD Manual Pages

  
 
  

home | help
shmctl(2)							     shmctl(2)

Name
       shmctl -	shared memory control operations

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

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

Description
       The system call provides	a variety of shared memory control operations,
       as specified by cmd.  The following cmds	are available:

       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

       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	 /* only low 9
		      bits */

		       This  cmd can only be executed by a process that	has an
		       effective user ID equal to either that of the superuser
		       or  to  the  value  of in the data structure associated
		       with shmid.

       IPC_RMID	      Remove the shared	memory identifier specified  by	 shmid
		      from  the	 system	 and destroy the shared	memory segment
		      and data structure associated with it. This cmd can only
		      be  executed  by a process that has an effective user ID
		      equal to either that of the superuser or to the value of
		      in the data structure associated with shmid.

       SHM_LOCK	      Lock  the	 shared	 memory	 segment specified by shmid in
		      memory.  Lock prevents the shared	 memory	 segment  from
		      being  swapped  or paged.	 This cmd can only be executed
		      by a process that	has an effective user ID equal to  the
		      superuser.

       SHM_UNLOCK     Unlock  the  shared  memory  segment specified by	shmid.
		      This cmd can only	be executed by a process that  has  an
		      effective	user ID	equal to the superuser.

Return Values
       Upon  successful	 completion,  a	value of zero (0) is returned.	Other-
       wise, a value of	-1 is returned,	and errno  is  set  to	indicated  the
       error.

Diagnostics
       The system call fails if	any of the following is	true:

       [EINVAL]	      The shmid	is not a valid shared memory identifier.

       [EINVAL]	      The cmd is not a valid command.

       [EACCES]	      The  cmd	is  equal  to IPC_STAT,	and read permission is
		      denied to	the calling process.  For further information,
		      see

       [EPERM]	      The  cmd is equal	to IPC_RMID or IPC_SET,	and the	effec-
		      tive user	ID of the calling process is not equal to that
		      of  the  superuser or to the value of in the data	struc-
		      ture associated with shmid.

       [EPERM]	      The cmd is equal	to  SHM_LOCK  or  SHM_UNLOCK  and  the
		      effective	user ID	of the calling process is not equal to
		      that of the superuser.

       [EINVAL]	      The cmd is equal to SHM_LOCK, and	the shared memory seg-
		      ment is currently	locked by this process.

       [EINVAL]	      The  cmd	is  equal to SHM_UNLOCK, and the shared	memory
		      segment specified	by shmid is not	 currently  locked  in
		      memory by	this process.

       [EFAULT]	      The buf points to	an illegal address.

See Also
       shmget(2), shmop(2)

								     shmctl(2)

Name | Syntax | Description | Return Values | Diagnostics | See Also

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

home | help