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

У меня есть сервер RPC, который передает клиенту большой объем данных переменной длины. Файл .x выглядит примерно так

struct file
{
    opaque data<>
};

В подпрограмме сервера у меня есть

struct file *transfer_1_svc(...)
{
    struct file;

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

    return &file;
}

Мой вопрос: кто освобождает данные, выделенные в процедуре сервера?


person steve landiss    schedule 23.08.2016    source источник


Ответы (1)


Это зависит от кода вашего сервера. Если вы используете rpcgen для создания серверной заглушки, вы можете использовать функцию xdr_free, которая освободит результат. Подробности смотрите в руководстве для разработчиков SunRPC: https://docs.oracle.com/cd/E19683-01/816-1435/rpcgenpguide-21470/index.html

person kofemann    schedule 01.09.2016