管道(Pipes)
管道对消息队列提供了一个可供选择的接口,VxWorks的I/O系统。管道是虚拟的I/O设备,由驱动PipeDrv管理。函数PipeDevCreate()创建一个管道设备,这个调用指定管道的名字,能被排列的最多的消息数,和每个消息允许的长度。
Status = PipeDevCreate ("/Pipe/Name", Max_msgs, Max_length);
被创建的管道是一个通常命名(Named)的I/O设备,任务能用标准的I/O函数打开,读,写管道,并能调用Ioctl例程。当任务试图从一个空的管道中读取数据,或向一个满的管道中写入数据时,任务被阻塞。和消息队列一样,ISR可以向管道写入,但不能从管道读取。
做为I/O设备,管道提供了消息队列所没有的重要特性,调用Select(). |