Csak hogy a szülő folyamat leválasztására vonatkozó osztott memóriát objektum

szavazat
0

Van egy több folyamat, amely felhasználásra shm_open(azok szült bármilyen sorrendben).

Mindegyikük ugyanazt az áramlási, mint:

int shm_fd = shm_open(pid, O_CREAT | O_EXCL | O_RDWR, S_IRWXU);
if (shm_fd == -1 && errno == EEXIST)
{
    //The object is already created so open it instead..
    shm_fd = shm_open(pid, O_RDWR, S_IRWXU);
}

if (shm_fd != -1)
{
    //do stuff..
}

Tehát, ha a megosztott memóriát objektum már létezik, csak kinyitja ahelyett, hogy hozza létre. Van egy módja annak, hogy nem ugyanaz, mert ha a jelenlegi folyamat nem nyitotta ki, ne szüntesse meg?

Azért kérdem, mert ha van 3+ gyerek folyamatok és az egyik szülő, ha az egyik gyerek meghal és kiváltja a shm_unlinktöbbé gyermek folyamatok kapcsolódik és kommunikál a szülő, mivel azt szüntetve.

Van egy módja annak, hogy a gyermekek folyamatok nem megszüntetni, amit nem hozott létre? IE: Hogyan kell kiváltani EACCESSaz shm_unlink, vagy kiváltani valami hasonló?

„EACCES - Engedélyt shm_unlink () az osztott memóriát objektum megtagadva.”

A kérdést 03/12/2019 00:00
a forrás felhasználó
Más nyelveken...                            


1 válasz

Csak hogy a szülő folyamat leválasztására vonatkozó osztott memóriát objektum

szavazat
0

Van egy több folyamat, amely felhasználásra shm_open(azok szült bármilyen sorrendben).

Mindegyikük ugyanazt az áramlási, mint:

int shm_fd = shm_open(pid, O_CREAT | O_EXCL | O_RDWR, S_IRWXU);
if (shm_fd == -1 && errno == EEXIST)
{
    //The object is already created so open it instead..
    shm_fd = shm_open(pid, O_RDWR, S_IRWXU);
}

if (shm_fd != -1)
{
    //do stuff..
}

Tehát, ha a megosztott memóriát objektum már létezik, csak kinyitja ahelyett, hogy hozza létre. Van egy módja annak, hogy nem ugyanaz, mert ha a jelenlegi folyamat nem nyitotta ki, ne szüntesse meg?

Azért kérdem, mert ha van 3+ gyerek folyamatok és az egyik szülő, ha az egyik gyerek meghal és kiváltja a shm_unlinktöbbé gyermek folyamatok kapcsolódik és kommunikál a szülő, mivel azt szüntetve.

Van egy módja annak, hogy a gyermekek folyamatok nem megszüntetni, amit nem hozott létre? IE: Hogyan kell kiváltani EACCESSaz shm_unlink, vagy kiváltani valami hasonló?

„EACCES - Engedélyt shm_unlink () az osztott memóriát objektum megtagadva.”

Válaszolt 03/12/2019 00:00
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more