IPC-System V-MQ-结构体-key值选定-ftok

函数定义总览




结构体定义

函数代码示例

代码
// 创建和获取 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 ;
}
posted @ 2022-05-03 10:15  starc的miao  阅读(40)  评论(0)    收藏  举报