如何释放在我的 RPC 服务器中分配的内存?

Posted

技术标签:

【中文标题】如何释放在我的 RPC 服务器中分配的内存?【英文标题】:How do I free the memory allocated in my RPC server? 【发布时间】:2016-08-23 15:42:16 【问题描述】:

我有一个 RPC 服务器,它向客户端传输大量可变长度数据。 .x 文件看起来像这样

struct file

    opaque data<>
;

在服务器例程中,我有

struct file *transfer_1_svc(...)

    struct file;

    file.data.data_val = malloc(...);

    return &file;

我的问题是谁释放了在服务器例程中分配的数据?

【问题讨论】:

【参考方案1】:

这取决于您的服务器代码。如果您使用 rpcgen 生成服务器存根,那么您可以使用 xdr_free 函数来释放结果。详情请查看 SunRPC 开发者指南:https://docs.oracle.com/cd/E19683-01/816-1435/rpcgenpguide-21470/index.html

【讨论】:

以上是关于如何释放在我的 RPC 服务器中分配的内存?的主要内容,如果未能解决你的问题,请参考以下文章

释放在不同 DLL 中分配的内存

C# Interop - 释放在非托管代码中分配的内存

释放在另一个循环中调用的函数中的alloated内存

在 C++ 中清除堆栈中分配的内存

.NET 如何测量请求中分配的字节数?

JAVA里String数组在内存分配中分配的空间每个占几个字节?