我想使用libuv通过TCP发送文件。我的问题是用于读取文件内容的uv_read_start。
在此之后,我必须让malloc(size)分配必要的内存量来填充内存中的所有文件(我绝对希望将这样的文件放在内存中)。
有没有办法在没有全局变量的情况下做到这一点?也许是一种完全不同的方式来做同样的事情?
提前谢谢。
发布于 2018-02-17 00:39:04
我看到handle->data包含一个void*,所以我们可以准确地放入我们想要的内容。在调用uv_read_start之前,将大小存储在流句柄stream->data = (size_t*)malloc(sizeof(size_t));和*(size_t *)(stream->data) = size;中,并通过读取size_t rsize = *(size_t*)(handle->data);在alloc_cb中重用它。在此之后,您必须释放此缓冲区。
还有其他想法吗?
https://stackoverflow.com/questions/48788195
复制相似问题