/*********************************************************************************************
* file name: HomeWork.c
* author : [email protected]
* data : 2024/05/27
* function : 测试消息队列的键值key的组成
* note : None
*
*
* CopyRight (c) 2023-2024 All Right Reseverd
*
* *******************************************************************************************/
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/msg.h>
int main()
{
// 创建消息队列
key_t key = ftok(".", 0xFFFFFF02);
int msg_id = msgget(key, IPC_CREAT | 0644);
// 错误处理
if (-1 == msg_id)
{
fprintf(stderr, "msgget error,errno:%d,%s\n",
errno, strerror(errno));
}
// 输出创建成功的MQ的id
printf("msg key is %#x\n", key);
// 可以选择验证key的生成算法
struct stat myStat;
stat(".", &myStat);
// 测试消息队列的键值key的dev_number
printf("dev is %#x\n", myStat.st_dev);
// 测试消息队列的键值key的inode_number
printf("ino is %#x\n", myStat.st_ino);
// 测试消息队列的键值key的project_id
printf("0xFFFFFF02\n");
//key:project_id(8bit) + device_number(8bit) + inode_number(16bit)
return 0;
}
标签:myStat,键值,key,printf,TEST,MQ,include,id
From: https://www.cnblogs.com/hhail08/p/18216637