Введение в общие библиотеки (shared libs) ========================================= Общие библиотеки (`.so`, shared object) используются множеством программ во время выполнения. Плюсы: ------ - Уменьшение размера бинарников - Централизованное обновление библиотек - Возможность замены функций через `LD_PRELOAD` Примеры: -------- - `/lib/arm-linux-gnueabihf/libc.so.6` - `/usr/lib/libm.so` - Пользовательская библиотека: `libsensor.so` Компиляция с общей библиотекой: :: gcc app.c -o app -lm Динамическая загрузка во время выполнения: :: void* handle = dlopen("libcustom.so", RTLD_LAZY); void (*func)() = dlsym(handle, "my_function");