hallo,
meine Frage zu
" Benutzung und Auswertung von void **retval "
ist zwar generell zu C, bezieht sich aber auf ein konkretes Problem bei der Raspi-Programmierung, daher stelle ich sie hier.
Gebraucht werden in einem Programm mehrere pthreads, die folgendermaßen verwaltet werden:
Code:
long f;
pthread_t threadID0, threadID1, threadID2;
int main() {
void **retval0 = NULL, **retval1 = NULL, **retval2 = NULL;
printf("enter order: ");
scanf("%ld", &f);
pthread_create( &threadID0, 0, threadW0, 0 );
pthread_create( &threadID1, 0, threadf1, 0 );
pthread_create( &threadID2, 0, threadf2, 0 );
pthread_join( threadID0, retval0 );
pthread_join( threadID1, retval1 );
pthread_join( threadID2, retval2 );
printf("\nprogram end \n");
return 0;
}
ich möchte nun die Rückgabewerte (retval) von pthread_join auswerten, um festzustellen, ob die pthreads sich selber beendet haben (per eigener Abbruchbedingung) oder ob einer der pthreads per
pthread_cancel
von einem anderen thread aus "zwangsweise" beendet wurde.
wie frage ich aber die Werte von retval ab? Es sind ja keine Integerwerte, die man z.B. auf 0 oder 3 testen kann, sondern void** (ich lese das als einen Pointer auf die Adresse einer typenlosen Variablen)
- wie händelt man das?
Lesezeichen