Funktionsaufruf zur Laufzeit "ändern"

OP Persönliche Seite #1393086
Lesenswert?

Hallo Leute, ich weiss einfach nicht nach was ich da noch suchen kann, 
das bisschen was mir einfiel, brachte mich nicht weiter...

Ich möchte ein struct haben, in dem in verschiedene Variablen die 
Funktionen geschrieben werden und die jeweilige dann aufgerufen wird.

Wie zum Beispiel, beim Linux Kernel wenn man mit einem /dev-Eintrag 
arbeitet:
1
static struct file_operations fops = {
2
        .read = vfd_read,
3
        .write = vfd_write,
4
        .open = vfd_open,
5
        .release = vfd_release,
6
        .ioctl = vfd_ioctl
7
};
Dieses struct ist glaube ich in der <linux/filesystems.h> oder so, auf 
jeden Fall wird nach dem erstellen der Gerätedatei jedesmal beim öffnen 
der Gerätedatei die Funktion vfd_read() aufgerufen. Da könnte ich aber 
genauso gut bla hinschreiben und er würde die Funktion  bla() aufrufen.

Ich hoffe mir kann ja jemand einen Tip geben :)
Moderator Persönliche Seite #1394693
Lesenswert?

Nils S. schrieb:

> ..., auf
> jeden Fall wird nach dem erstellen der Gerätedatei jedesmal beim öffnen
> der Gerätedatei die Funktion vfd_read() aufgerufen.

Genauer gesagt: es wird fops->read() aufgerufen.  Das ist zwar so
initialisiert, dass es vfd_read() aufrufen würde dabei, aber den
Zeiger fops->read könnte man zur Laufzeit auch anders zuweisen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren