Linux / gcc: funcionalidad ldd desde dentro de un programa C / C ++

¿Existe una manera simple y eficiente de saber que un determinado enlace dinámicoELF falta un .so requerido para que se ejecute, todo desde eldentro de un programa de C / C ++?

Necesito un programa con funcionalidad algo similar aldd, sin intentar ejecutar elELF para averiguar las dependencias (cumplidas / no satisfechas) en el sistema. Tal vez preguntando la utilidad ld-linux.so a través de alguna biblioteca? (Soy un novato en esta parte de linux =)

NOTA: leyendo el código fuente deldd No fue de mucha ayuda para mis intenciones: parece queldd De hecho, está forzando otro proceso y ejecutando el programa.

Si no es posible saber que un programa tiene dependencias no satisfechas sin ejecutarlo, ¿hay alguna manera de, al menos, enumerar rápidamente el .so requerido para eso?ELF todo desde dentro de mi programa?

Gracias de antemano =)