qfedu-linux-advanced-level/day5/msgque1.c

31 lines
1.0 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}