31 lines
1.0 KiB
C
31 lines
1.0 KiB
C
#include <stdio.h>
|
||
#include <sys/types.h> // 系统数据类型定义
|
||
#include <sys/ipc.h> // IPC相关头文件
|
||
#include <sys/msg.h> // 消息队列相关头文件
|
||
|
||
// msgget 函数用于创建消息队列,参数1是键值,参数2是权限
|
||
int main()
|
||
{
|
||
key_t key = ftok("/home/flykhan/", 200); // 获取消息队列的键值
|
||
printf("key = %d\n", key);
|
||
if (key == -1)
|
||
{
|
||
perror("ftok");
|
||
return 1;
|
||
}
|
||
|
||
// msgget 函数用于创建消息队列,参数1是键值,参数2是权限
|
||
// 返回值是消息队列的标识符,类似于文件描述符
|
||
// IPC_CREAT 表示如果消息队列不存在则创建,如果存在则打开
|
||
// 0644 表示权限,类似于文件权限,表示所有者可读写,其他人只读
|
||
int msgqid = msgget(key, IPC_CREAT | 0666); // 创建消息队列
|
||
if (msgqid == -1)
|
||
{
|
||
perror("msgget");
|
||
return 1;
|
||
}
|
||
|
||
// msgqid 只要不是 -1 就表示创建成功
|
||
printf("msgqid = %d\n", msgqid); // 打印消息队列标识符
|
||
return 0;
|
||
} |