Как освободить память, выделенную на моем RPC-сервере?

У меня есть сервер 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

Другие вопросы по тегам