管道
优质
小牛编辑
132浏览
2023-12-01
管道接口
函数 | |
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_t * | rt_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 为找到设备或设备部位管道类型。