sdget man page on Xenix

Man page or keyword search:  
man Server   1130 pages
apropos Keyword Search (all sections)
Output format
Xenix logo
[printable version]



     SDGET(S)		      XENIX System V		      SDGET(S)

     Name
	  sdget, sdfree - Attaches and detaches a shared data segment.

     Syntax
	  #include <sys/sd.h>

	  char *sdget(path, flags, size, [mode])
	  char *path;
	  int flags, mode;
	  long size;

	  int sdfree(addr);
	  char *addr;

     Description
	  sdget attaches a shared data segment to the data space of
	  the current process.	The actions performed are controlled
	  by the value of flags. flags values are constructed by OR-
	  ing flags from the following list:

	  SD_RDONLY   Attach the segment for reading only.

	  SD_WRITE    Attach the segment for both reading and writing.

	  SD_CREAT    If the segment named by path exists and is not
		      in use (active), this flag will have the same
		      effect as creating a segment from scratch.
		      Otherwise, the segment is created according to
		      the values of size and mode. Read and write
		      access to the segment is granted to other
		      processes based on the permissions passed in
		      mode, and functions the same as those for
		      regular files.  Execute permission is
		      meaningless.  The segment is initialized to
		      contain all zeroes.

	  SD_UNLOCK   If the segment is created because of this call,
		      the segment will be made so that more than one
		      process can be between sdenter and sdleave
		      calls.

	  sdfree detaches the current process from the shared data
	  segment that is attached at the specified address.  If the
	  current process has done sdenter but not an sdleave for the
	  specified segment, sdleave will be done before detaching the
	  segment.

	  When no process remains attached to the segment, the
	  contents of that segment disappear, and no process can
	  attach to the segment without creating it by using the
	  SD_CREAT flag in sdget. errno is set to EEXIST if a process
	  tries to create a shared data segment that exists and is in

     Page 1					      (printed 8/7/87)

     SDGET(S)		      XENIX System V		      SDGET(S)

	  use.	errno is set to ENOTNAM if a process attempts an sdget
	  on a file that exists but is not a shared data type.

     Notes
	  Use of the SD_UNLOCK flag on systems without hardware
	  support for shared data may cause severe performance
	  degradation.

	  For 286 programs, it is strongly recommended that sdget and
	  other shared data functions be reserved for large model
	  programs only.  Small or middle model programs that attempt
	  to use shared data may run out of available memory. Also,
	  due to the 286 hardware, it is not possible to enforce the
	  read-only aspect of small model shared data. However,
	  read-only segments are honored in large model programs.

	  The 386 provides a 32 bit address space, even in small
	  model. As a result, shared data may be conveniently used
	  without regard to the restrictions that apply to 286
	  programs.

	  sdget automatically increments the process's original break
	  value to the memory location immediately after the shared
	  data segment.	 This affects subsequent sbrk or brk calls
	  which attempt to restore the original break value.  In
	  particular, attempts to restore the break value to its value
	  before the sdget call causes an error.

	  This feature is a XENIX specific enhancement and may not be
	  present in all UNIX implementations.	This routine must be
	  linked using the linker option -lx.

     Return Value
	  On successful completion, the address at which the segment
	  was attached is returned.  Otherwise, -1 is returned, and
	  errno is set to indicate the error.  errno is set to EINVAL
	  if a process does an sdget on a shared data segment to which
	  it is already attached.  errno is set to EEXIST if a process
	  tries to create a shared data segment that exists and is in
	  use.	errno is set to ENOTNAM if a process attempts an sdget
	  on a file that exists but is not a shared data type.

	  The mode parameter must be included on the first call of the
	  sdget() function.

     See Also
	  sdenter(S), sdgetv(S), sbrk(S)

     Notes
	  The size variable in sdget has changed from unsigned to long
	  between  Version 3.0 and  System  V. Although this requires
	  that source code be modified to use a long size parameter

     Page 2					      (printed 8/7/87)

     SDGET(S)		      XENIX System V		      SDGET(S)

	  when compiling with the System V libraries, an unsigned size
	  parameter will still be correctly interpreted by the kernel
	  when passed by binaries compiled with the Version 3.0
	  libraries.

     Page 3					      (printed 8/7/87)

[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Xenix

List of man pages available for Xenix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net