MST

星途 面试题库

面试题:C语言中Linux消息队列发送函数的参数及含义

在Linux环境下使用C语言进行消息队列编程,简述msgsnd函数的主要参数及其代表的含义。
37.2万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  • msgid:消息队列标识符,由msgget函数返回,用于标识特定的消息队列。
  • msgp:指向一个消息缓冲区的指针,该缓冲区包含要发送的消息。它的结构一般为:
struct msgbuf {
    long mtype; /* 消息类型,必须大于0 */
    char mtext[1]; /* 消息正文 */
};
  • msgsz:要发送的消息正文的长度(以字节为单位),不包括mtype的长度。
  • msgflg:标志位,用于控制消息发送的行为。常见取值及含义如下:
    • IPC_NOWAIT:若消息队列已满,函数立即返回,不等待队列有空间。
    • 0:默认值,若消息队列已满,函数将阻塞,直到队列有空间或者发生错误。