函数定义总览
![]()
![]()
![]()
结构体定义
![]()
函数代码示例
代码
// 创建和获取 ipc 内核对象
int msgget(key_t key, int flags);
// 将消息发送到消息队列
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
// 从消息队列获取消息
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
// 查看、设置、删除 ipc 内核对象(用法和 shmctl 一样)
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
struct Msg{
long type; // 消息类型。这个是必须的,而且值必须 > 0,这个值被系统使用
// 消息正文,多少字节随你而定
// ...
};
key值选定方法
![]()
![]()
![]()
![]()
![]()
获取唯一的KEY
![]()
![]()
![]()
生成键值函数ftok
![]()
![]()
![]()
代码示例
Code
void mq_func_ftok(void)
{ //验证文件使用ftok函数创建键值
struct stat stat_buf;
stat("build.sh", &stat_buf);
key_t key = ftok("build.sh", 0x1234); // 自定义输入取后两位
// dev取后两位;iNode取后四位;
printf("st_dev:%lx\nst_inode:%lx\nkey:%x\n", stat_buf.st_dev, stat_buf.st_ino, key);
return ;
}