Usuwanie semafora nazwanego

0

Mam problem z usunięciem semafora nazwanego.
Fragment kodu:

	sem_t *sem1;
	sem1=sem_open("semafor", O_CREAT, 0644, 1);
	sem_unlink("semafor");

Jednak semafor nie jest usuwany (komunikat: "No such file or directory").
Gdzie jest błąd? Z góry dziękuję za pomoc :)

0

Dopisałem linijkę z sem_close(sem1);

	sem_t *sem1;
	sem1=sem_open("semafor", O_CREAT, 0644, 1);
	sem_close(sem1);
	sem_unlink("semafor");

Jednak sytuacja się nie zmienia. Napisanie "/semafor" również nie pomaga

1
int main()
{

    sem_t *sem1;
    int value;
    if((sem1 = sem_open("semafor", O_CREAT | O_EXCL, 0644, 1))) {
        // stuff
    } else if((sem1 = sem_open("semafor", O_EXCL, 0644, 1))) {
        // other stuff
    }
    assert(sem1);
    sem_getvalue(sem1, &value);
    printf("Wartosc semafora to %d\n", value);
    sem_close(sem1);
    sem_unlink("semafor");
}

U mnie działa. Tworzenie już istniejącego semafora się nie powodzi, co oczywiste.

0

A jeśli u mnie wciąż nie, to gdzie mogę jeszcze szukać błędu?

0

A pokaż co leci przy wywołaniach systemowych: strace ./twój_program

0

I pytanie czy z roota działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1