Skip to content

消息队列接口设计不合理,rt_mq_recv应该传出消息的实际大小 #5730

Closed
@FragrantRye

Description

@FragrantRye

向消息队列发送消息时调用:

rt_mq_send(&mq, data, data_len);

可发送指定长度的消息。
而在接受时调用:

char buff[MAX_SIZE];
rt_mq_recv(&mq, buff, MAX_SIZE, timeout);

无法取到所发送数据的实际长度,必须自己设计数据结构在data中存放长度,造成编程上的不便以及不必要的开销。
建议给recv增加一个可传出实际消息长度的版本,类似这样:

rt_err_t rt_mq_recv_with_size(rt_mq_t    mq,
                    void      *buffer,
                    rt_size_t  size,
                    rt_size_t  *real_size,
                    rt_int32_t timeout)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions