nbsp; int sdleave(addr,flags) char *addr;
说明:用于指示调用进程已完成修改共享数据段中的内容.
返回值:调用成功则返回0,否则返回-1.
26.sdget()
功能:联接共享数据段到调用进程的数据空间中.
语法:#include <sys/sd.h>
char *sdget(path,flags,size.mode)
char *path;
int flags;
long size;
int mode;
说明:本系统调用将共享数据段联接到调用进程的数据段中,具体动作
由flags的值定义:
. SD_RDONLY:联接的段为只读的.
. SD_WRITE:联接的段为可读写的.
. SD_CREAT:若由path命名的段存在且不在使用中,本标志的作用
同早先创建一个段相同,否则,该段根据size和mode的值进程
创建.对段的读写访问权限的授予基于mode给的权限,功能与
一般文件的相同.段被初始化为全0.
. SD_UNLOCK:若用此标志创建该段,则允许有多个进程同时访问
(在读写中)该段.
返回值:若调用成功则返回联接的段地址.否则返回-1.
27.sdfree()
功能:将共享数据段从调用进程的数据空间中断开联接.
语法:#include <sys/sd.h>
int sdfree(addr)
char *addr;
说明:本系统调用将共享数据段从调用进程的数据段的指定地址中分离.
若调用进程已完成sdenter()的调用,还未调用sdleave()就调用
本系统调用,则sdleave()被自动调用,然后才做本调用的工作.
返回值:若调用成功则返回联接的段地址.否则返回-1.
28.sdgetv()
功能:同步共享数据访问.
语法:#include <sys/sd.h>
int sdgetv(addr)
char *addr;
说明:用于同步协调正在使用共享数据段的进程.返回值为共享数据段
的版本号.当有进程对该段做sdleave()操作时,版本号会被修改.
返回值:若调用成功,则返回指定共享数据段的版本号,否则返回-1.
29.sdwaitv()
功能:同步共享数据访问.
语法:#include <sys/sd.h>
int sdwaitv(addr,vnum)
char *addr;
int vnum;
说明:用于同步协调正在使用共享数据段的进程.返回值为共享数据段
的版本号.调用进程会睡眠直到指定段的版本号不再等于vnum;
返回值:若调用成功,则返回指定共享数据段的版本号,否则返回-1.
30.sbrk()
功能:修改数据段空间分配.
语法:char *sbrk(incr)
int incr;
说明:用于动态修改调用进程数据段的空间分配.进程将重置进程的分
段值并分配一个合适大小的空间.分段值为数据段外第一次分配
的地址.要分配的空间的增加量