|
|||||||||||||||||||||||||||
On Sun, 28 Feb 1999, Jan Eggert Kofoed wrote: > og slette de, der ikke er i brug. /usr/sbin/fuser kan fortælle, > om en fil benyttes. Jeg kan klare dette i bash, og efterfølgende > kalde perl, men sådanne opgave kan sikkert klares helt i perl. fuser paa Linux (2.0.x) virker ved at koerer igennem hele /proc strukturen og se paa alle de fd'ere som alle programmer har aabne. Fx: /tmp# ls -la /proc/1/fd total 0 dr-x------ 1 root root 0 Mar 1 10:27 . dr-xr-xr-x 3 root root 0 Mar 1 08:15 .. lrwx------ 1 root root 64 Mar 1 10:27 10 -> [0303]:12341 Her kan vi se at process 1 har inode 12341 aaben paa device 03:03. ~# ls -la /dev/hda3 brw-rw---- 1 root disk 3, 3 Sep 7 1994 /dev/hda3 3,3 er /dev/hda3, og inode 12341 findes nok et eller andet sted paa disken (ved at have en find -inode 12341 fx) . Hvis vi startede med fx. en /tmp/foobar vil kunne vi sammenligne dens inode-nummer med det er ligger i /proc/fd/*. Med andre ord: du har nok ikke lyst til at implementerer det i Perl :) -- ============================================================================== Erwin Andreasen Herlev, Denmark <sslug@sslug> UNIX System Programmer <URL:http://www.andreasen.org> <*> (not speaking for) DDE ==============================================================================
|
||||||||||||||
|
||||||||||||||