В Windows, к примеру, если все написано аккуратно - то только оверхедом на продублированные реализации этих самых стандартных библиотек. Аккуратно - это значит, например, память удалять с помощью той же реализации libc, с чьей помощью эта память была выделена.
В Linux вроде как даже этой проблемы быть не должно, поскольку, условно говоря, куча у всех библиотек, живущих в одном процессе, - общая. Вобщем, теоретически это совершенно законно.
> В Linux вроде как даже этой проблемы быть не должно, поскольку, условно говоря, куча у всех библиотек, живущих в одном процессе, - общая. Вобщем, теоретически это совершенно законно.
например stdio? не факт, что transparent by design структура FILE [точнее _IO_FILE из <libio.h>] будет совпадать между разными версиями библиотеки. смотреть в общем нужно на конкретику.
Это да, FILE я бы точно не стал пытаться использовать совместно из нескольких библиотек; но надо же понимать что можно, а что нельзя. Даже просто бинарная совместимость одних и тех же структур - отдельная тема, один и тот же компилятор с разными настройками нагенерит несовместимый код.
> Это да, FILE я бы точно не стал пытаться использовать совместно из нескольких библиотек; но надо же понимать что можно, а что нельзя. Даже просто бинарная совместимость одних и тех же структур - отдельная тема, один и тот же компилятор с разными настройками нагенерит несовместимый код.
struct stat, iov, sockaddr - да мало ли. в общем, везде, где есть аргументы-структуры могут быть проблемы. это так, навскидку.