2 Stimmen

Wie rufe ich Standardbibliotheksfunktionen aus dem Linux-Kernel auf?

Ich optimiere Code im Verzeichnis /net des Linux-Kernels.

Ich habe versucht, Dinge wie das Drucken auszuprobieren, aber ich sehe, dass es keine relevanten Header (wie stdlib.h, stdio.h usw.) gibt. Wie kann ich das auf Kernel-Ebene machen?

5voto

Sie können in Kernel keine Benutzerbereichsbibliotheksfunktionen verwenden, sondern sollten nur Funktionen verwenden, die vom Kernel exportiert werden. Daher gibt es keine stdio.h, stdlib.h, usw. Wenn Sie im Kernel etwas drucken möchten, verwenden Sie die printk()-Funktion, die dem printf() im Benutzerbereich entspricht.

Siehe auch meine Blog-Beiträge Linux-Modulprogrammierung Teil 1 und Teil 2.

2voto

Kernel-Module haben keinen Zugriff auf die C-Standardbibliothek. Es gibt einige Funktionen im Kernel verfügbar; schau im lib-Verzeichnis im Kernel-Quellcode oder in deinem Lieblings-Linux-Kernel-Programmierbuch nach (falls du keines hast, Linux Device Drivers ist eins gutes und es ist online verfügbar). Für printf-Debugging gibt es printk, das Nachrichten an die Kernel-Logs sendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X