Proces der går i sted
Sidder lige med lidt kode som driller mig.Der er en process som kører administrativMedarbejder() funktionen. processen kører fint, og printer fint "test" ud som den skal. Den kører her efter hentPerson(), som henter en struckt fra en messageque, og skriver den ud, dette virker også fint, funktionen hentPerson er nu slut, og jeg ville derfor forvente at den hopper tilbage til det sted hvor den blev kørt fra og fortsætte med koden derfra, men dette gør den ikke, "test3" bliver aldrig udskrevet, og processen går i stå.
Jeg kan ikke forstå hvorfor den gør dette, så håber nogle kan hjælpe mig.
patient patientDerBearbejdes;
patient* personFraRiget();
int msgidPatientTilSkraenke;
void hentPerson();
int administrativMedarbejder()
{
printf ("test");
hentPerson();
printf ("test3");
printf ("metoden fra administrende medarbejder patient:\n");
printf("%s \n", patientDerBearbejdes.cprArray);
printf("%c \n", patientDerBearbejdes.prioritet);
printf("%c \n", patientDerBearbejdes.skadeartChar);
return 0;
}
void hentPerson()
{
printf("test2");
patient patientp;
if (msgrcv(msgidPatientTilSkraenke, (void *)&patientp, KByte, 1, 0) == -1)
{
printf("fejl ved msgrcv");
exit(EXIT_FAILURE);
}
int i;
for (i = 0 ; i < 11 ; i++)
{
patientDerBearbejdes.cprArray[i] = patientp.cprArray[i];
}
patientDerBearbejdes.prioritet = patientp.prioritet;
patientDerBearbejdes.skadeartChar = patientp.skadeartChar;
printf ("metoden fra hentPerson patient:\n");
printf("%s \n", patientp.cprArray);
printf("%c \n", patientp.prioritet);
printf("%c \n", patientp.skadeartChar);
}