消息队列函数msgsnd,参数较少

时间:2017-01-20 05:12:40

标签: perl message-queue

' msgsnd'功能实际声明如下

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

但是,有一个以下列方式使用的perl程序

msgsnd($qid, pack("l! l! a*", $type, $type, $cmd), 1)

这只有3个参数。这是如何运作的?

1 个答案:

答案 0 :(得分:1)

usage实际上是

msgsnd ID,MSG,FLAGS

Perl字符串不像C中那样终止NUL;字符串标量(例如MSG)除字符串缓冲区本身外还包含字符串缓冲区中数据长度的字段,因此在这三个参数中可以获得所有必要信息以使基础{{1}调用。

Here是Perl msgsnd()运算符的实现。