Es ist das erste Mal, dass ich mit Threads in C arbeite und ich bekomme Probleme übergeben Funktionsargumente. Aus irgendwelchen Gründen muss ich diesen Thread erstellen. Ich habe eine Funktion, die Nachrichten an einen Server sendet. Der Header meiner Funktion ist:C - pthread Argumente
void* sender (char* payload, void (*Callback)(char*))
Dann auf meinem Haupt (vereinfacht), erstelle ich die folgenden Threads:
main()
{
pthread_t sender_id;
int err_s;
err_s = pthread_create (&sender_id, NULL, &sender, NULL);
}
Das Problem ist, dass meine Funktion Absender viele Argumente hat so ich dies immer Fehler:
note: expected 'void * (*)(void *)' but argument is of type 'void * (*)(char *, void (*)(char *))'
Ich wäre dankbar, wenn Sombody mir helfen könnte.
Dies ist nicht möglich. Jede Funktion, die in einem Thread verwendet werden kann, muss folgende Signatur haben: void * thread_func (void * arg). Ich schlage vor, dass Sie stattdessen eine Struktur verwenden, die Ihre zwei Argumente Payload und Callback enthält. –