消息传递是linux中的简单有效的IPC方法之一,另外比较熟悉的是pipe和share memory,其中share memory的速度是最快的。
消息传递方式编程相对比较简单,接收message的进程通过如下步骤:
1.调用msgget函数创建一个消息队列,需要注意的是IPC_CREAT这个宏,如果消息队列已经建立好了,它会忽略的。
2.msgrcv函数来从队列上得到消息
3.msgctl函数利用“IPC_RMID”命令来删除消息队列。
和接受消息进程的编程方法类似,发送消息的编程模式类似
1.调用msgget来得到消息队列的标识符
2.msgsnd函数来发送消息到队列上。
根据实际情况,我们需要的是一个接受消息进程,来控制摄像机,需要多个发送消息进程,发控制命令给设备,各个发送消息的进程之间需要竞争,实现互斥。