Re: 'Undeleting' an open file

From: Bernd Petrovitsch
Date: Fri Oct 07 2005 - 09:44:58 EST


On Fri, 2005-10-07 at 15:30 +0100, Ian Campbell wrote:
> On Fri, 2005-10-07 at 16:14 +0200, Giuseppe Bilotta wrote:
> > On Wed, 5 Oct 2005 23:05:34 +0200 (CEST), Bodo Eggert wrote:
> >
> > > Files are deleted if the last reference is gone. If you play a music file
> > > and unlink it while it's playing, it won't be deleted untill the player
> > > closes the file, since an open filehandle is a reference.
> >
> > BTW, I've always wondered: is there a way to un-unlink such a file?
>
> Access via /proc/PID/fd/* seems to work:
>
> $ echo "Hello World" > testing
> $ exec 10>>testing
> $ rm testing
> $ ls -l /proc/self/fd/
> total 5
> lrwx------ 1 icampbell icampbell 64 Oct 7 15:28 0 -> /dev/pts/9
> lrwx------ 1 icampbell icampbell 64 Oct 7 15:28 1 -> /dev/pts/9
> l-wx------ 1 icampbell icampbell 64 Oct 7 15:28 10
> -> /home/icampbell/testing (deleted)
> lrwx------ 1 icampbell icampbell 64 Oct 7 15:28 2 -> /dev/pts/9
> lr-x------ 1 icampbell icampbell 64 Oct 7 15:28 3 -> /proc/31390/fd/
> $ cat /proc/self/fd/10
> Hello World
> $

Did you try linking it?

Bernd
--
Firmix Software GmbH http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
Embedded Linux Development and Services

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/