加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

UNIX操作系统用消息队列实现进程通信的程序设计方法

发布时间:2022-12-21 11:04:33 所属栏目:Unix 来源:
导读:  UNIX操作系统用消息队列实现进程通信的程序设计方法计算机系统应用UNIX操作系统用消息队列实现进程通信的程序设计方法摘要:消息队列,共享内存unix进程通信,信号是UNIX操作系统环境中实现进程通信的主要手段。本芏
  UNIX操作系统用消息队列实现进程通信的程序设计方法计算机系统应用UNIX操作系统用消息队列实现进程通信的程序设计方法摘要:消息队列,共享内存unix进程通信,信号是UNIX操作系统环境中实现进程通信的主要手段。本芏主要介绍消息队列的式是:CLIENT向SERVER提出交易请求,SERVER基于CLIENT/SERVER结构的实际应用系统中,如储蓄临柜业务软件系统,SERVER负责开销户,帐户查询等后台数据库的操作。CLIENT处理前台柜员界面和帐户进程和SERVER进程能有效地进行数据交换。UNIX据流到其他进程,能够满足CLIENT方和SERVER消息队列机构是UNIX核心提供实现进程通信的有UNIX操作系统核心提供了完善的消息管理机制,用于返回(有可能是创建)与参数key相应的msqld,参数key为一非负整数。(1)当相应的msqid已被创建,rac,。gget()返回(2)当相应的msqid不存在,msgget()创建mdkey可以被指定为IPC~PRIVATE以保证返回一个消息队列的属性由msg{lg决定。mSgflg的值必须是控制域是预先定义在ipc。h头文件中的常量。可取IPC-CREAT和IPC-CREATlIPC-EXCL之一。
 
  mSgng(1)当mz,。g{lg&IPC—CREAT为真,且与key相应的rmsqid不存在时,msgget(key。(IPC~CREAT『操作权限))(2)当与key相应的msqid已存在,则msgget(key,(IPC-CREATl操作权限))返回msqid。(3)当与key相应的msqid已存在,msgget(key,((IPC-CREATlIPC-EXCL)f操作权限))调用失败。也就是说,可以用IPC—EXCL控制域来迫使系统通知错误。消息队列创建成功后,可以用系统命令ipcs查询消息队列的状态,在SCOUNIX3242版本中。敲入ipcsq2000x00o00001一Rrw—rw一一一一icbcinfonnix作权限为rw—rw一一一(660),队列创建者为icbc用户,msqid是通过magget()创建的消息队列标识号。msgp是指向消息结构的指针,该指针所指结构包括msgsz是消息结构中定义的字符数组mtext的长度。其最大值由系统参数MSGMAX决定。msgflg定义当消息队列空间溢出(即队列满)时系统当msgfig&IPC~NOWAIT为真。rmsgsnd()不发达当msgflg&IPC~NOWAIT为假,msgsnd()处于”挂msqidmsgp参数含义与msgsnd()中的一样。
 
  msgsz指定被接收消息的长度,如果它的值小mtext数组的长度,则:若mslg&MSG-NOERROR为真,则消息正文按msgsz大小截取,系统不报告错误消息。若msgfig&MsGNOERR(m为假,则msgsnd()返msgtyp参数用于指定接收消息的类型,定义如下:typ的消息。msgtyp绝对值最小的消息。msgflg用于定义当消息队列上没有指定的消息或消若msgfIg&IPC-NOWAIT为真,则msgrcv()返回若msgfig&IPCNOWAIT为假,则ms~cv()处于msqid指定被控制的消息队列标识号。emd可被下列的控制命令之一所代替:ds)信息取出放入bur指向的缓冲区。SET或IPC-RMID控制命令。buf是指向消息队列结构的指针,该指针所指的结构定义在msg。h头文件以及ipe。h头文件中~elwer进程通詹的程序实例,该程序在SCOUNIX3。2。4。2环境中调试通过。
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章