Sadece unlink paylaşılan bellek nesneye üst işlemin izin

oy
0

Ben kullanır ki birden çok işlem var shm_open(onlar herhangi bir sırada çatallanabilir).

Hepsi aynı akışını olarak sahip:

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..
}

paylaşılan bellek nesnesi zaten varsa Yani, sadece yerine onu oluşturmak için çalışmakla bunu açar. yapmanın bir yolu akım süreç açmak ETMEDİYSENİZ, bağlantısını kaldırmadan yok aynı var mı?

Ben sormak çünkü 3+ çocuk süreçleri ve bir ebeveyni, çocuk ölür ve tetikleyiciler eğer varsa shm_unlinkartık çocuk süreçleri bağlayıp bağlantısının kaldırılması beri ebeveyn ile iletişim kurabilir.

Süreçler onlar yaratmadı neyi bağlantısını kaldırmak için başarısız çocuk sahibi bir yolu var mı? IE: Nasıl tetiklemek için EACCESSiçin shm_unlinkbenzer bir şey veya tetikleyici?

EACCES - shm_unlink izni () paylaşılan bellek nesnesi reddedildi.

Oluştur 03/12/2019 saat 00:00
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

Sadece unlink paylaşılan bellek nesneye üst işlemin izin

oy
0

Ben kullanır ki birden çok işlem var shm_open(onlar herhangi bir sırada çatallanabilir).

Hepsi aynı akışını olarak sahip:

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..
}

paylaşılan bellek nesnesi zaten varsa Yani, sadece yerine onu oluşturmak için çalışmakla bunu açar. yapmanın bir yolu akım süreç açmak ETMEDİYSENİZ, bağlantısını kaldırmadan yok aynı var mı?

Ben sormak çünkü 3+ çocuk süreçleri ve bir ebeveyni, çocuk ölür ve tetikleyiciler eğer varsa shm_unlinkartık çocuk süreçleri bağlayıp bağlantısının kaldırılması beri ebeveyn ile iletişim kurabilir.

Süreçler onlar yaratmadı neyi bağlantısını kaldırmak için başarısız çocuk sahibi bir yolu var mı? IE: Nasıl tetiklemek için EACCESSiçin shm_unlinkbenzer bir şey veya tetikleyici?

"EACCES - shm_unlink izni () paylaşılan bellek nesnesi reddedildi."

Cevap 03/12/2019 saat 00:00
kaynak kullanıcı

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