Usuwanie semafora nazwanego

Odpowiedz Nowy wątek
2019-04-14 21:31
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 :)

edytowany 1x, ostatnio: hidden55, 2019-04-14 21:34
Pokaż pozostałe 2 komentarze
pobiera sem_t *sem - au7h 2019-04-14 22:00
Tak tak, mój błąd, sem_close(sem1) jak najbardziej działa, jednak z tego co rozumiem funkcja ta jedynie zamyka go, a nie usuwa, natomiast sem_unlink() go usuwa, a na tym właśnie mi zależy - hidden55 2019-04-14 22:06
najpierw wywołujesz sem_close(sem1); a później sem_unlink("semafor"); - au7h 2019-04-14 22:07
Niestety to niczego nie zmienia, taki błąd wciąż wyskakuje :/ - hidden55 2019-04-14 22:10
no to może przed nazwą daj znak "/" np "/semafor" - au7h 2019-04-14 22:11

Pozostało 580 znaków

2019-04-14 22:13
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

edytowany 3x, ostatnio: hidden55, 2019-04-14 22:15

Pozostało 580 znaków

2019-04-14 22:42
kq
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.


edytowany 1x, ostatnio: kq, 2019-04-14 22:42

Pozostało 580 znaków

2019-04-14 23:09
0

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

Pozostało 580 znaków

2019-04-14 23:12
0

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

Pozostało 580 znaków

2019-04-16 14:19
0

I pytanie czy z roota działa

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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