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