首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

VxWorks管道(Pipe)创建与文件操作(2)

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)

丢弃管道中所有消息。
返回列表