Portál AbcLinuxu, 9. května 2025 05:33
Chápu dobře manuálovou stránku fcntl / F_SETLK, že když třeba v GTK aplikaci použiju onen file lock, tak když otevřu open dialog v adresáři s tím souborem, který soubor otevírá k určení typu souboru a pak ho zavře, tak tím zruší můj lock?
Řešení dotazu:
Já myslím tyhle zámky přes fcntl(fd, F_SETLK, ...). Otevřu soubor, nastavím zámek a jde mi o to, jestli třeba když v té aplikaci dojde k zobrazení gtk file dialogu, který otevírá soubory a čte jejich část pro zjištění mime typu (nebo třeba i Qt, pokud se tak chová), tak když otevře můj soubor (je to jiný descriptor, není to ani dup() toho mýho), tak když ho zavře, jestli to zruší i můj zámek na úplně jiným descriptoru.
As well as being removed by an explicit F_UNLCK, record locks are automatically released when the process terminates or if it closes any file descriptor referring to a file on which locks are held. This is bad: it means that a process can lose the locks on a file like /etc/passwd or /etc/mtab when for some reason a library function decides to open, read and close it.Pokud to tedy chápu dobře a opravdu tomu tak je, tak moje otázka ... k čemu jsou pak takové zámky dobré?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.