gpt4 book ai didi

c - 存在什么(更优雅的)方法来解析离散的数据 block ,就好像它们是一个数据 block 一样?

转载 作者:行者123 更新时间:2023-11-30 17:25:53 27 4
gpt4 key购买 nike

我有一个问题:我将从外部源获取数据。不幸的是,我将分块获取这些数据。

该函数的伪代码如下所示:

stringy chunk;

recievedata(stringy incomingdata,number size_of_incoming_data){

chunk=malloc(size_of_incoming_data)
chunk=incomingdata
}

但是,传入的数据是一个字符串,必须彻底解析,并且很有可能数据的目标单词将以不可预测的方式分割成多个 block 。该函数由 OpenSSL 的curl 库调用多次以传递正在接收的数据。

正如上面的 pusedocode 中所示,这将继续覆盖旧数据。我可以使用缓冲区来解决这个问题,例如:

    stringy chunk;
stringy buffer;

recievedata(stringy incomingdata,number size_of_incoming_data){

if (chunk is assigned) {
buffer = chunk;
chunk=malloc(size_of_incoming_data+size_of_old_data)
chunk = buffer + incomingdata
free (buffer)
}
}

唉,这看起来有点可怕。我发现非常丑陋的是,我有两个相同数据的两个副本,但没有功能原因。因为这是一个守护进程运行一台有其他事情要做的机器,所以我需要尽可能保守地使用内存等资源。

是否有人愿意启发我以这种方式处理数据的最有效方法?

谢谢。

最佳答案

处理数据 block 的惯用方法是构建一个更高级别的接口(interface),将它们视为流。例如,您可能有

     char nextByteInStream () ;

获取单个字节(省略错误处理参数)。或者

     void nextBytes (char *, int count) ;

返回多个字节。

在压缩中,常见的是:

    unsigned int nextBits (int count) ;

返回流中的一个或多个位。

使用这样的接口(interface)来隔离 block 数据固有的困惑性。

关于c - 存在什么(更优雅的)方法来解析离散的数据 block ,就好像它们是一个数据 block 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26954778/

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