Jedinecnost klice pro fnc shmget

Martin `MJ' Mares mj na ucw.cz
Čtvrtek Duben 8 20:29:47 CEST 2004


Hello, world!\n

> No, takove chovani si samozrejme lze ruznymi zpusoby odsimulovat. 
> Napriklad mne hned napada sice jeden mozna ne zrovna elegantni, ale jinak 
> celkem funkci ... pomoci mkstemp() si nekde v /tmp (respektive tam kam 
> ukazuje $TMPDIR) vytvorit soubor a pak jako jednoznacnou identifikaci brat 
> jeho inode. Pokud mkstemp() vrati eexist, znamena to, ze soubor jiz 
> existuje a muzeme si jeho inode zjistit taky a k danemu segementu sdilene 
> pameti se attachnout.

To neni moc bezpecne, protoze ne kazdy filesystem musi mit jednoznacna cisla
i-nodu (viz napriklad NFS). Daleko rozumnejsi je pouzit IPC_CREAT | IPC_EXCL
a cisla volit nahodne s pripadnym opakovanim, pokud jiz existuje. Nebo pokud
nepotrebujete predavat key mezi programy (tj. pokud Vam staci predavat si
sdilenou pamet pres fork()), pouzijte IPC_PRIVATE key.

				Have a nice fortnight
-- 
Martin `MJ' Mares   <mj na ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"Dijkstra probably hates me." -- /usr/src/linux/kernel/sched.c


Další informace o konferenci Linux