PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : |C| (jaja, schon wieder) pthread_create



ulf-s
18-02-2002, 21:36
Hallo, meine letzte Frage für heute :)
ich möchte einen Thread erstellen, funzt auch eigentlich ganz gut, nur
was muss ich machen wenn ich mehr als 1 Argument angeben will?



#include <pthread.h>

int pthread_create(pthread_t newthread, pthread_attr_t *attribute, void *(*funktion)(void *), void *arg);


so ist wohl die definition, nur wenn ich da mehr als ein argument (mit komma)
dahintersetze meint der compiler:

main.c:93: too many arguments to function `pthread_create'

der Codeausschnitt:


if(pthread_create(&on_sock, NULL, (void *)&on_socket_connect, (void *)s, (void *)c) != 0)
{
fprintf(stderr, "Fehler bei Thread 1......\n");
exit(0);
}


Ich hoffe, wer von euch weiss wie ich mehrere argumente dareinstecken kann.

MfG
Ulf

jgbauman
19-02-2002, 11:42
Wie waers damit die vielen Argumente in ein struct zu stecken und nur den Zeiger auf dieses struct zu übergeben. voila

ulf-s
19-02-2002, 13:16
Fehler schon gefunden :)
Um die parameter müssen klammern drum *doh*!

MFG
Ulf

jgbauman
20-02-2002, 23:02
ch glaub da freust Du dich zu frueh.
Eine sequence ist wohl kaum was Du suchst, obwohl es der compiler frisst.
Besorg dir mal ein gutes c-Buch damit Du lernst, dass

foo(a, (b, c));

nichts anderes ist als

b;
foo(a, c);

(solange die Ausführungsreihenfolge von a, b und c egal sind, aber das geht jetzt zu weit)