RT-Thread API参考手册  3.1.1
嵌入式实时操作系统

管道接口 更多...

函数

rt_err_t rt_pipe_open (rt_device_t device, rt_uint16_t oflag)
 打开管道 更多...
 
rt_err_t rt_pipe_close (rt_device_t device)
 关闭管道 更多...
 
rt_size_t rt_pipe_read (rt_device_t device, rt_off_t pos, void *buffer, rt_size_t count)
 从管道读取数据 更多...
 
rt_size_t rt_pipe_write (rt_device_t device, rt_off_t pos, const void *buffer, rt_size_t count)
 向管道写入数据 更多...
 
rt_pipe_trt_pipe_create (const char *name, int bufsz)
 创建管道 更多...
 
int rt_pipe_delete (const char *name)
 删除管道 更多...
 

详细描述

管道接口

函数说明

rt_err_t rt_pipe_open ( rt_device_t  device,
rt_uint16_t  oflag 
)

打开管道

此函数打开管道,实际创建管道缓冲区。

参数
device设备句柄
oflag打开方式
返回
-RT_EINVAL 设备句柄为空;RT_EOK 打开成功
rt_err_t rt_pipe_close ( rt_device_t  device)

关闭管道

此函数关闭指定管道,销毁其数据缓冲区。

参数
device设备句柄
返回
-RT_EINVAL 设备句柄为空;RT_EOK 关闭成功
rt_size_t rt_pipe_read ( rt_device_t  device,
rt_off_t  pos,
void *  buffer,
rt_size_t  count 
)

从管道读取数据

往管道中读取指定长度数据。

参数
device设备句柄
pos与POSIX 标准接口兼容的参数(目前没有意义,传入0即可)
buffer读管道数据的存储区的指针
count待读取数据的大小
返回
成功返回读取数据字节数;设备句柄为空或待读取数据字节数为0时返回0。
rt_size_t rt_pipe_write ( rt_device_t  device,
rt_off_t  pos,
const void *  buffer,
rt_size_t  count 
)

向管道写入数据

往管道中写入指定长度数据。

参数
device设备句柄
pos与POSIX 标准接口兼容的参数(目前没有意义,传入0即可)
buffer待写入数据的缓冲区指针
count待写入数据的大小
返回
成功返回实际写入的字节数;设备句柄为空或待读取数据字节数为0时返回0。
rt_pipe_t* rt_pipe_create ( const char *  name,
int  bufsz 
)

创建管道

调用该函数创建管道,系统会从动态堆内存中分配一个管道句柄,并对管道句柄按照指定值初始化,然后向系统注册管道设备。

参数
name管道名称
bufsz缓冲区大小
返回
创建成功则返回管道控制块;创建失败时返回RT_NULL。
int rt_pipe_delete ( const char *  name)

删除管道

调用该函数删除指定名称的管道设备,并释放其所占的内存空间。

参数
name管道名称
返回
0 删除成功;-RT_EBUSY 使用中,删除失败;-ENODEV 为找到设备或设备部位管道类型。