VxWorks管道(Pipe)创建与文件操作(2)
- UID
- 852722
|
VxWorks管道(Pipe)创建与文件操作(2)
管道不再需要时可以删除以释放资源。
#Include “PipeDrv.H”
STATUS PipeDevDelete(Char *Name,BOOL Force);
参数Name表示管道设备名称,必须和创建时制定一致。参数Force表示是强制删除。在正常情况下删除管道必须满足两个约束:
1)所有该管道上打开的文件都已经关闭。
2)没有任务因该管道上Select操作而阻塞。不满足约束时,函数不会阻塞,而是返回ERROR。
★ 管道I/O控制
管道以I/O设备形式出现,因此相比前述其他IPC机制多了I/O控制功能。
1) FIOGETNAME Status=Ioctl(Fd,FLOGETNAME,&NameBuf)
取管道文件描述符对于的管道设备名称。
2) FIONREAD Status=Ioctl(Fd,FIONREAD,&NBytesUnread)
读管道中第一条消息剩余未读字节数到NBytesUnread。如果管道没有消息,NBytesUnread=0。
3) FIONMSGS Status=Ioctl(Fd,FIONMSGS,&NMessages)
取管道中剩余消息条数到NMessages。如果管道没有消息,NMessages=0。
4) FIOFLUSH Status=Ioctl(Fd,FIOFLUSH,0)
丢弃管道中所有消息。 |
|
|
|
|
|