diff --git a/rt-thread-version/rt-thread-standard/programming-manual/device-ipc/ringbuffer/ringbuffer.md b/rt-thread-version/rt-thread-standard/programming-manual/device-ipc/ringbuffer/ringbuffer.md index 6e5d320cf53564fe687b7d1b3a94a86f19216630..6a6b86cc4c67824d525282507226460e2b9c67fb 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/device-ipc/ringbuffer/ringbuffer.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/device-ipc/ringbuffer/ringbuffer.md @@ -164,7 +164,7 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb, const rt_uint8_t *pt ### 从 ringbuffer 读取数据 -从 ringbuffer 里读取数据的接口分为两类,一类是**读数据并取出数据**,另一类是**读数据但并不取出数据**(peak 操作)。 +从 ringbuffer 里读取数据的接口分为两类,一类是**读数据并取出数据**,另一类是**读数据但并不取出数据**(peek 操作)。 先介绍第一类接口,读数据并取出数据。 @@ -204,7 +204,7 @@ rt_size_t rt_ringbuffer_get(struct rt_ringbuffer *rb, rt_uint8_t *ptr, rt_uint16 下面介绍第二类接口,读数据但不取出数据: ```c -rt_size_t rt_ringbuffer_peak(struct rt_ringbuffer *rb, rt_uint8_t**ptr); +rt_size_t rt_ringbuffer_peek(struct rt_ringbuffer *rb, rt_uint8_t**ptr); ``` 该接口用于获取 `rb` 指向的 ringbuffer 内部缓冲区**第一个可读数据的地址**,并保存到 `*ptr`,该接口返回 ringbuffer 内存储的字节数。 @@ -213,7 +213,7 @@ rt_size_t rt_ringbuffer_peak(struct rt_ringbuffer *rb, rt_uint8_t**ptr); ![](figures/peak.png) -此时 ringbuffer 内部存储了 3 个字节, `read_index` 索引到了内部数组的最后一个字节,此时调用 peak 接口,我们获取的就是内部数组的最后一个字节的地址 `p`,我们仅通过 `*p` 访问一个字节是没问题的,若访问第二个字节 `*(p+1)` 则就造成了数组越界。 +此时 ringbuffer 内部存储了 3 个字节, `read_index` 索引到了内部数组的最后一个字节,此时调用 peek 接口,我们获取的就是内部数组的最后一个字节的地址 `p`,我们仅通过 `*p` 访问一个字节是没问题的,若访问第二个字节 `*(p+1)` 则就造成了数组越界。 下表描述了该函数的输入参数与返回值: