Ich versuche mit der Funktion create_proc_entry() ein Verzeichnis unter/proc zu erstellen. Wenn ich versuche, den Code zu kompilieren, erhalte ich den folgenden Fehler: implizite Deklaration der Funktion 'create_proc_entry'.implizite Deklaration der Funktion 'create_proc_entry'
Dies sind die Header ich in meiner C-Datei enthalten sind:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/vmalloc.h>
#include <linux/uaccess.h>
Die Kernel-Version auf der Maschine zu kompilieren ich versuche: 3.10.33-g7954807-dirty
Fehle ich irgendwelche Header, um diese Methode aufzurufen? Oder ist die Methode in meiner Version des Kernels veraltet?
Ich sehe, dass eine Struktur file_operations erstellt werden muss, um proc_create zu verwenden. Wie lautet die Nomenklatur zum Erstellen eines Callbacks für den .write-Member? – theNoobProgrammer
@theNoobProgrammer Ich habe die Antwort bearbeitet, hoffe, es hilft. –
Die Methode in diesem Link scheint für meine Zwecke übertrieben zu sein. Ich versuche im Wesentlichen, dies zu tun: http://www.ibm.com/developerworks/linux/library/l-proc/index.html. Ich konnte das von meinem Gastgeber aus ausführen. Das einmal gemountete Verzeichnis (/ proc/fortune) könnte in geschrieben und gelesen werden. Aber auf dem Gerät, für das ich entwickle, enthält nicht create_proc_entry(), sondern das proc_create(). Ich versuche einfach, die Lese-/Schreib-Rückrufe von dem Link zu ändern, um mit file_operation-Strukturen zu arbeiten. Ich denke nicht, dass ich mit sequenziellen Dateilesevorgängen weitermachen muss. – theNoobProgrammer