Rückgabewert aus einem Thread auswerten.
-
Also, wen es interessiert, die Lösung ist folgendermassen:
typedef struct { int fd; int status; }response_client; void *action() { response_client *resp = malloc(sizeof(response_client)); resp->fd = 2; resp->status = 1; pthread_exit(resp); } int main() { pthread_t t1; void* fd; response_client *resp; if(pthread_create(&t1, NULL, &action, NULL) != 0) { fprintf(stderr, "Fehler bei Thread 1......\n"); exit(0); }else{ printf("Thread wurde erstellt!\n"); } pthread_join(t1, (void**)&resp); printf("Filediskriptor %d\n\n",resp->status); free(resp); return 0; }
-
Was ist ein Thread?
-
Ha, da verweise ich auf reichlich Literatur und wikipedia!
-
Ich glaube er versucht dir zu sagen, dass ANSI C nix mit Threads anfangen kann
-
Jetzt wo du es sagst^^. Ich werde in Zukunft besser überlegen, wo was hingehört.
-
Grafzahl schrieb:
Jetzt wo du es sagst^^. Ich werde in Zukunft besser überlegen, wo was hingehört.
Oder schreib wenigstens dazu, aus welchem Themenbereich das kommt, sonst sitzt man da und versteht nur Bahnhof.
-
Grafzahl schrieb:
Also, wen es interessiert, die Lösung ist folgendermassen:
Ach, du willst deinen eigenen Tread-Exit-Status definieren? Ich dachte du brauchst den System-Rückgabewert!
Das ist aber ein bisschen unglücklich mit deinem malloc mitten in der Threadfunktion!
Hier ist ne IMO bessere Alternative (Erstes Codebeispiel Example Code - Pthread Creation and Termination - weiter unten):
https://computing.llnl.gov/tutorials/pthreads/
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
sowas sollte auch möglich sein
printf("%d\n%d",((response_client*)resp)->fd,((response_client*)resp)->status);
-
Ich merke grad, dass es eigendlich totaler Schwachsinn ist, für meine Zwecke irgendwelche Variablen zurück zu geben, dass sinnvollste wäre das Ganze mit Mutexe und globalen Variablen zu lösen.