Zaczynam pisać program z semaforami i na początku natrafiłem na pewien problem.
Chciałem stworzyć semafor, a następnie wypisać jego aktualną wartość.
Mój kod wygląda tak:
sem_t *sem1;
int *value;
sem1=sem_open("semafor", O_CREAT | O_EXCL, 0644, 1);
sem_getvalue(sem1, value);
printf("Wartosc semafora to %d\n", value);
I tutaj moim problemem jest to, że po pierwsze przy kompilacji wyskakuje ostrzeżenie przy ostatniej linijce, dokładniej dotyczące "%d" (kompilator sugeruje "%ls"). Po uruchomieniu programu nic właściwie się nie dzieje, ponieważ wyskakuje komunikat o naruszeniu ochrony pamięci i oczywiście jego zakończenie.
Jest to mój pierwszy kontakt z semaforami, czytałem o tym dużo, jednak nie potrafię poradzić sobie z tym problemem, także proszę o wytłumaczenie, na czym polega mój błąd :)
Z góry dziękuję za pomoc :)