Creando un sistema de módulos (carga dinámica) en C

¿Cómo se puede cargar el código C compilado en tiempo de ejecución y luego llamar a las funciones dentro de él? No es como simplemente llamar a exec ().

EDIT: el programa que carga el módulo está en C.