gpt4 book ai didi

c++ - 将 QBuffer 用于二进制数据

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:06 26 4
gpt4 key购买 nike

我正在编写一个 Qt (4.6) 应用程序,负责从 usb acm 调制解调器设备读取数据。从设备中读取原始二进制和 (ascii) 字符数据的混合。我有一个线程负责在数据可用时不断地将数据从设备读取到共享内存中,第二个线程负责处理此数据。

我正在考虑使用 QBuffer 类作为存储数据并在线程之间共享数据的方法,但是当我读到 QByteArray(QBuffer 将其用作数据存储)时。我开始担心 QBuffer 总是会在线程之间传递的数据末尾附加一个 '\0' Null 字符,因为 QByteArray 表现出这种行为?是这种情况还是 QBuffer 允许我存储和检索数据而不对我的所有数据强制执行任何终止字符“\0”?

最佳答案

终止 0 对您的应用程序是透明的。

例如,如果您将“ABC”附加到数组,则会附加“ABC\0”,但 size() 仍将返回 3,如果您随后附加“DEF”,则数组将包含“ABCDEF\0” (并且 size() 仍将返回 6,而不是 7)。

如果您请求指向原始数据的指针以使用 C 库中的函数进行进一步处理,则终止符 0 可能很有用。

关于c++ - 将 QBuffer 用于二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7630328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com