Chapter 27. Dynamic Loading at Run Time
Loading shared objects at run time can be a useful way to structure your applications. Done right, it can make your applications extensible, and it also forces you to partition your code into logically separate modules, which is a useful coding discipline.
Many Unix applications, particularly large ones, are mostly implemented by separate blocks of code, often called plugins or modules. In some cases, they are implemented as completely different programs, which communicate with the application’s core code via pipes or some other form of interprocess communication (IPC). In other cases, they are implemented as shared objects.
Shared objects are normally built like standard shared libraries (see Chapter 8), ...