Usuwanie semafora nazwanego

Usuwanie semafora nazwanego
H5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

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

Kopiuj
	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 :)

H5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Dopisałem linijkę z sem_close(sem1);

Kopiuj
	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

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1
Kopiuj
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.

H5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

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

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
0

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

AL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1493
0

I pytanie czy z roota działa

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.