Robert B.: Noch eine Frage zu c

Beitrag lesen

Hallo pl,

Btw., in meiner Konfiguration lege ich Namen von Funktionen fest. Gibt es in c eine Möglichkeit, mit einem konfigurierten Namen eine gleichnamige Funktion aufzurufen? Also unmittelbar?

Wäre eine DLL/ein Shared-Object für dich unmittelbar genug? Dort werden die exportierten Funktionsnamen über Strings aufgelöst, siehe https://en.wikipedia.org/wiki/Dynamic_loading bzw. für Unix konkret dlopen, dlsym und dann dlclose

#include <dlfcn.h>

typedef 
void *lib;

if ((lib = dlopen("lib<myname>.so", RTLD_LAZY))) {
    void *fct;

    if ((fct = dlsym(lib, "FunctionName"))) {
        // verwende das aufgelöste Symbol
        // …
    }

    dlclose(lib);
}

Viele Grüße
Robert