Witam,
Mam wykonac takie zadanie:
Program oczekuja na podane dane w formacie <czas w="w" sekundach="sekundach"> <tresc alarmu="alarmu">, twozy za kazdym razem nowy watek dla
nowego alarmu
Napisałem coś takiego:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <string.h>
#include <sys/types.h>
int MAX_ALARMOW = 5;
struct argumenty
{
int iLiczba;
char cNapis[32];
};
void *watek1 (void *arg)
{
struct argumenty *argument = (struct argumenty*)arg;
int iLiczba = argument -> iLiczba;
char* cNapis = argument -> cNapis;
pthread_t pTid = pthread_self();
sleep(iLiczba);
printf("Moj Tid to: '%u' a napis to: '%s' \n", (unsigned int)pTid, cNapis);
}
int main( int argc, char** argv)
{
pthread_t ptid;
struct argumenty argumenty_watka[MAX_ALARMOW];
int i, iloscAlarmow = 0;
for(i = 0; i <= MAX_ALARMOW; i++)
{
int iloscSekund = 0;
char cNapis;
printf("Podaj alarm\n");
scanf("%d %s", &iloscSekund, &cNapis);
if(iloscSekund !=0)
{
argumenty_watka[iloscAlarmow].iLiczba = iloscSekund;
strcpy(argumenty_watka[iloscAlarmow].cNapis, &cNapis);
pthread_create(&ptid, NULL, &watek1, &argumenty_watka[iloscAlarmow]);
iloscAlarmow++;
if (iloscAlarmow >= MAX_ALARMOW)
{
printf("Maksymalna ilosc alarmow");
break;
}
iloscSekund = 0;
}
fflush(stdin);
}
return 0;
}
Problem w tym, że nie wypisuje informacji od ID watku i napisu. W czym tkwi problem?
Pozdrawiam,