我有一个将大量可变长度数据传输到客户端的 RPC 服务器。.x 文件看起来像这样
struct file
{
opaque data<>
};
在服务器例程中,我有
struct file *transfer_1_svc(...)
{
struct file;
file.data.data_val = malloc(...);
return &file;
}
我的问题是谁释放了在服务器例程中分配的数据?
这取决于您的服务器代码。如果您使用 rpcgen 生成服务器存根,那么您可以使用xdr_free函数来释放结果。有关详细信息,请查看 SunRPC 开发人员指南:https ://docs.oracle.com/cd/E19683-01/816-1435/rpcgenpguide-21470/index.html