美文网首页
进程通信-消息队列 函数说明

进程通信-消息队列 函数说明

作者: 1Z实验室阿凯 | 来源:发表于2016-03-31 11:22 被阅读121次

ftok

FUNCTION
系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。

进程间通信:比较脸熟的ftok()

**USAGE **

key_t ftok( char * fname, int id )

PARAMETER
@fname 文件路径名称
fname就时你指定的文件名(该文件必须是存在而且可以访问的)
@id
id是子序号,****虽然为int,但是只有8个比特被使用(0-255)

RETURN
key_t : 将文件的索引节点号取出,前面加上子序号得到key_t的返回值。如指定文件的索引节点号为65538,换算成16进制为 0x010002,而你指定的ID值为38,换算成16进制为0x26,则最后的key_t返回值为0x26010002。

NOTE
查询文件索引节点号的方法是

ls -i

ftok的第一个参数是一个文件的路径名称.一般在应用系统中,使用$HOME或者应用系统的根目录作为它的值.这样产生的key_t就不会与系统中其他的软件和系统的相同了,从而避免造成冲突. (当以文件为第一个参数时,如果文件的大小发生变化,生成的Key也会响应变化,应注意 )

shmget

???

fgets

FUNCTION

**USAGE **

PARAMETER

msgget

FUNCTION
msgget [message get] | [创建一个消息队列]

**USAGE **
int msgget(key_t key, int msgflg);

PARAMETER
@key : key ??key_t
@msgflg :message flag

msgsnd

FUNCTION
msgsnd [message sender] |消息队列发送

**USAGE **

int msgsnd(int msqid, const void *msgp, size_t msgsz,int msgflg);

PARAMETER
@msqid : message quenue id
@msgp : message pointer
@msgsz : message size
@msgflg : message flag

msgrcv

**FUNCTION **
msgrcv [message receiver] |消息队列接收

**USAGE **

int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg);

PARAMETER
@msqid : message quenue id
@msgp : message pointer
@msgsz : message size
@msgtyp : message type
@msgflg : message flag

msgctl
msgctl = message control 根据cmd的不同 执行不同的指令
FUNCTION

 int msgctl(int msqid, int cmd, struct msqid_ds *buf);

@msgctl :message queue id
@cmd :command
@buf : buffer

**USAGE **
,msgctl系统调用对msqid标识的消息队列执行cmd操作列
PARAMETER
cmd

IPC_STAT
读取消息队列的数据结构msqid_ds,并将其存储在b u f指定的地址中。
IPC_SET
设置消息队列的数据结构msqid_ds中的ipc_perm元素的值。这个值取自buf参数。
IPC_RMID
从系统内核中移走消息队列。

msgctl 函数介绍

相关文章

  • 进程通信-消息队列 函数说明

    ftok FUNCTION系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过...

  • 高性能网站实用技巧之消息队列

    什么是消息队列? 消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式。进程或者...

  • 高性能网站实用技巧之消息队列篇

    什么是消息队列 消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式。进程或者线...

  • 零散的小知识记录(待补充和修改)

    Android跨进程通信:Binder,socket/管道/消息队列,共享内存; linux进程间通信:管道,Bi...

  • 消息队列原理及选型

    什么是消息队列 消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式。 什么时候...

  • IPC-消息队列

    消息队列概念 消息队列是IPC(进程间通信,inter process communication)中常用的一种方...

  • PHP进程间通信--消息队列

    前面介绍了怎么通过消息管道(有名消息管道)进行进程间通信,下面介绍如何通过消息队列实现进程间通信。 首先我们来看一...

  • MQ及Kafka

      MQ(Message Queue)消息队列,是一种跨进程的通信方式,应用程序通过写入和检索出入队列的消息来通信...

  • PHP 进程通信-消息队列

    消息队列是消息的链接表(一种常见的数据结构),但是这种消息队列存储于系统内核中(不是用户态),一般我们外部程序使用...

  • 进程通信之消息队列

    ftok键值获取 创建消息队列 IPC对象机制shell命令 消息队列的控制 发送 实例 接收 实例

网友评论

      本文标题:进程通信-消息队列 函数说明

      本文链接:https://www.haomeiwen.com/subject/jlpelttx.html