изменение данных в перехватываемой функции

Тема в разделе "LANGS.C", создана пользователем shsh, 29 июл 2010.

  1. shsh

    shsh Member

    Публикаций:
    0
    Регистрация:
    3 янв 2008
    Сообщения:
    69
    вот например я хучу send , и мне надо удлинить буфер чтоб в реальный send передать больше ...
    пробовал realloc , непомогло )
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    send_hook(s, buf, cb, flag)
    newbuf = malloc(cb + x)
    memcpy(buf, newbuf, cb)
    ....
    send_all(s, newbuf, cb)

    в чем проблема-то %)
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Не помогло скорее всего потому, что в самой программе лежит один указатель, realloc возвращает другой и программа ничего об этом не знает. К сожалению тс подробно не описал что он хочет, так что это конечно только догадка.
     
  4. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    надо еще позаботится о возвращаемом значении расширить буфер пытатся отправить в цикле если все ушло вызывающему коду вернуть размер который он запросил хотя ушло больше на самом деле а если например в цикле успели передать часть которую запросил вызывающий код а потом поймали ошибку что сообщать вызывающему что все окей его то размер мы отправили или что произошла ошибка ? если и его часть не смогли отправить тут понятно что вернуть
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Заюзать другой буфер.
     
  6. shsh

    shsh Member

    Публикаций:
    0
    Регистрация:
    3 янв 2008
    Сообщения:
    69
    всё гениальное просто )
    помогло