Ich würde etwas Hilfe benötigen. Ich mache es stundenlang und kann es nicht zur Arbeit bringen. Im Allgemeinen habe ich eine Funktion, die auf einen Kernel-Treiber zugreift, und ich möchte diese Funktion als Parameter an eine andere Funktion übergeben, die einen Pthread-Code enthält. Ich recherchierte und fand heraus, dass ich einen Funktionszeiger brauche.C-Programm: übergeben Sie die Funktion als Parameter an eine andere Funktion zum Erstellen von Thread
Hier ist die Funktion, die ich als Parameter übergeben möchte.
static void kernelTest(char Send[BUFFER_LENGTH])
{
int fd = open("/dev/kernelTest", O_RDWR);
}
Hier ist die Funktion, die ich passieren in möchten:
static void createKThread(void (*f)(char *))
{
pthread_t t1;
int ret;
ret = pthread_create(&t1, NULL, (*f)(char), NULL);
pthread_join(t1, NULL);
}
ich den Funktionszeiger versucht, aber es mir Fehler gibt.
error: expected expression before ‘char’
Ich schätze jede Hilfe sehr geschätzt. Danke!
'pthread_create (& t1, NULL , f, NULL); 'wäre korrekt, aber der Prototyp des Funktionszeigers sollte' void * (*) (void *) 'sein. – mch