Det resterende kode ser ud som følger:
int hentPerson()
{
printf("test2");
patient patientp;
sleep(2);
if (msgrcv(msgidPatientTilSkraenke, (void *)&patientp, sizeof(patient) -4, 1, 0) == -1)
{
printf("fejl ved msgrcv");
exit(EXIT_FAILURE);
}
int i;
for (i = 0 ; i < 11 ; i++)
{
patientDerBearbejdes.cprArray
= patientp.cprArray;
}
patientDerBearbejdes.prioritet = patientp.prioritet;
patientDerBearbejdes.skadeartChar = patientp.skadeartChar;
patientDerBearbejdes.patientType = 1;
/*printf ("metoden fra hentPerson patient:\\n");
printf("%s \\n", patientp.cprArray);
printf("%c \\n", patientp.prioritet);
printf("%c \\n", patientp.skadeartChar);
*/
return 0;
}
int sorterPatient()
{
int i = 0;
while (i == 0)
{
int filtjek = open(logtest, O_RDWR | O_CREAT | O_EXCL, 0444);
if (filtjek != -1)
{
i++;
}
}
FILE *patientlog;
FILE *mainLog;
int fejl;
mainLog = fopen("mainlog","a");
if(mainLog == NULL)
{
printf("Filen kunne ikke åbnes");
}
printf("fejlfinding");
//fprintf(mainLog, "test\\n");
fprintf(mainLog, "%s;", patientDerBearbejdes.cprArray);
fejl = fclose(mainLog);
printf("fejlfinding");
if(fejl != 0)
{
printf("fil kunne ikke lukkes");
}
if(patientDerBearbejdes.prioritet == 1)
{
char *fil = malloc(30);
strcpy(fil, "/tmp/g2logs/");
strcat(fil, patientDerBearbejdes.cprArray);
patientlog = fopen(fil,"w");
if(patientlog == NULL)
printf("Filen kunne ikke åbnes");
fprintf(patientlog, "Patienten er placeret på operationsstuen \\n %s", getKlokken());
fejl = fclose(patientlog);
if(fejl != 0);
if (msgsnd(msgidPatientFraSkraenkeTilOperation, (void *)&patientDerBearbejdes, sizeof(patient) -4, 0) == -1)
{
printf ("fejl ved msgsnd");
exit (EXIT_FAILURE);
}
}
else
{
char *fil = malloc(30);
strcpy(fil, "/tmp/g2logs/");
strcat(fil, patientDerBearbejdes.cprArray);
patientlog = fopen(patientDerBearbejdes.cprArray,"w");
if(patientlog == NULL)
printf("Filen kunne ikke åbnes");
fprintf(patientlog, "Patienten er placeret i venteværelset \\n %s", getKlokken());
fejl = fclose(patientlog);
if (msgsnd(msgidPatientFraSkraenkeTilVentevaerelse, (void *)&patientDerBearbejdes, sizeof(patient) -4, 0) == -1)
{
printf ("fejl ved msgsnd");
exit (EXIT_FAILURE);
}
}
(void)unlink(logtest);
return 0;
}
char *getKlokken() //http://souptonuts.sourceforge.net/code/gettimeofday.c.html er tilpasset
{
char *tempChar;
char buffer[30];
size_t size = 1;
tempChar = (char *)malloc(size);
struct timeval tv;
time_t curtime;
gettimeofday(&tv, NULL);
curtime=tv.tv_sec;
strftime(buffer,30,"%m-%d-%Y %T.",localtime(&curtime));
sprintf(tempChar, buffer);
printf("Test %s \\n" , tempChar);
return tempChar;
}