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

25 lines
928 B
C
Raw 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>
// ftok()函数用于获取消息队列的键值
int main()
{
// 获取消息队列的键值返回值是一个整数表示消息队列IPC的键值
key_t key = ftok("/", 26);
printf("key = %d\n", key);
// ftok()函数的第一个参数是路径,第二个参数是索引值
// 索引值是一个整数范围是0~255用于区分不同的消息队列
// 超过255的索引值会被截断例如256会被截断为0257会被截断为1相当于循环使用
key_t key2 = ftok("/", 26);
printf("key = %d\n", key2);
int mask = 0xff; // 0b11111111 低8位掩码
printf("mask = %d\n", mask);
// 低8位掩码与key进行与运算得到低8位
printf("key & mask = %d\n", key & mask); // 用于获取低8位
printf("key2 & mask = %d\n", key2 & mask); // 用于获取低8位
return 0;
}