I made this code now:
Code:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/types.h>
#include "patientStruct.h"
#define LOGFILE "logFil.txt"
sem_t dame1;
skrivTilLog(p[MAX].cprnr, p[MAX].prio, p.[MAX].skade)
int main(int argc, char *argv[])
{
sem_init(&dame1,0,1);
int i, n;
pid_t pid;
pid = fork();
switch(pid)
{
case -1:
perror("fork failed!");
exit(1);
case 0:
while(i=0; i < Patient[MAX]; i++) //sålænge et eller andet mht. patienterne..
{
printf("Patient %d bliver nu modtaget af dame1\n", i, 0);
//Kritisk område start
sem_wait(&dame1);
printf("Dame1 har skrevet Patient %d i log'en\n", i);
skrivTilLog(p[MAX].cprnr, p[MAX].prio, p.[MAX].skade)
sleep(2);
sem_post(&dame1);
//Kritisk område slut
}
default:
while(i=0; i < Patient[MAX]; i++) //sålænge et eller andet mht. patienterne..
{
printf("Patient %d bliver nu modtaget af dame1\n", i, 0);
//Kritisk område start
sem_wait(&dame1);
printf("Dame1 har skrevet Patient %d i log'en\n", i);
skrivTilLog(p[MAX].cprnr, p[MAX].prio, p.[MAX].skade)
sleep(2);
sem_post(&dame1);
//Kritisk område slut
}
break;
}
exit(0);
}
/*
Skriver tekst til logFil.txt, samt til skærm
*/
void skrivTilLog(p[MAX].cprnr, p[MAX].prio, p.[MAX].skade)
{
FILE *fp = fopen(LOGFILE, "a");
fprintf(fp, p[MAX].cprnr, p[MAX].prio, p.[MAX].skade);
fclose(fp);
}
I need this code to go through all the patients(threads) via their information, which lies in my struct.
Is this somewhat more correct?
thanks all