分类: LINUX
2012-04-28 18:13:09
ftok()函数
#include
#include
函数原型: key_t ftok( const char * pathname , int proj_id );
参数:
返回值: 成功时候返回key_t 类型的key值,失败返回-1
msgget函数
#include
#include
#include
函数原型: int msgget ( key_t key , int msgflg );
函数描述:建立消息队列
参数:
msgflg表示权限以及消息队列的一些特性,有以下取值:IPC_PRIVATE IPC_CREAT IPC_EXCL 0666 等等
返回值:
成功时返回队列ID,失败返回-1,错误原因存于error中
msgsnd函数:将消息送入消息队列
#include
#include
#include 函数原型:int msgsnd ( int msgid , struct msgbuf*msgp , int msgsz, int msgflg ); 参数说明: smgbuf结构体定义如下: struct smgbuf { long mtype; char mtext [x] ; //长度由msgsz决定 } msgflg 可设置为 IPC_NOWAIT 。如果消息队列已满或其他情况无法送入消息,则立即返回 EAGIN msgrcv函数:从消息队列中读取消息 #include #include #include 函数定义:int msgrcv( int msgid , struct msgbuf* msgp , int msgsz , long msgtyp, int msgflg); 参数: msgbuf:结构体,定义如下: struct msgbuf { long mtype ; //信息种类 char mtest[x];//信息内容 ,长度由msgsz指定 } msgtyp: 信息类型。 取值如下: msgtyp = 0 ,不分类型,直接返回消息队列中的第一项 msgtyp > 0 ,返回第一项 msgtyp与 msgbuf结构体中的mtype相同的信息 msgtyp <0 , 返回第一项 mtype小于等于msgtyp绝对值的信息 msgflg:取值如下: IPC_NOWAIT ,不阻塞 IPC_NOERROR ,若信息长度超过参数msgsz,则截断信息而不报错。 返回值:成功时返回所获取信息的长度,失败返回-1,错误信息存于error 例: msgA.c msgB.c