我有一个应用程序,我通过 LuaSockets 从网络(500KB)获取大量二进制数据。(还没有实现这部分)。根据我所知道的,这些数据将存储在某种字符串或表或数组中。
我需要对这些数据进行复杂的处理,并且我有一个现有的、经过验证的 ANSI-C Lib,我需要将数据传递给 C。我研究过的方法通常在调用堆栈中传递数据,这是行不通的由于数据大小,对我来说。
现有的 ANSI-C 库需要一个指向数据和大小的指针。我可能可以用一个新的 API 包装这个 API,它逐字节地排除数据,最后一旦确定了整个大小,就调用真正的 API,但这意味着从 Lua 对某些 C 函数的大量调用,而不是首选,因为我想要性能.
将这些大数据传递给 C 的最佳方法是什么?(我考虑过写入文件并传递文件名,但这不是首选,我真的想要直接内存传递)