Я пытаюсь реорганизовать мой код на C для стандарта POSIX.Видимо, я зашел в тупик, что сводится к этому простому коду.Семафор должен быть разделен между двумя процессами, но, к сожалению, он принадлежит процессу, который его создал.
creator
sem_t * mutex;
if ((mutex = sem_open (key_trucker, O_CREAT, 0644, 1)) == SEM_FAILED) {
perror ("sem_open"); exit (1);
}
int val;
sem_getvalue(mutex,&val);
if(val == 0 ){
sem_post(mutex);
}
time_t currtime;
while(1){
sem_wait(mutex);
time(&currtime);
sleep(1);
printf("%s",ctime(&currtime) );
sem_post(mutex);
}
процесс, который разделяет семафор
sem_t * mutex;
if ((mutex = sem_open (key_trucker, 0 )) == SEM_FAILED) {
perror ("sem_open"); exit (1);
}
time_t currtime;
while(1){
sem_wait(mutex);
time(&currtime);
printf("%s",ctime(&currtime) );
sleep(1);
sem_post(mutex);
}