Re: read() on a deleted file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





--On 3 January 2008 16:00:22 +0530 Fasihullah Askiri <fasihullah.askiri@xxxxxxxxx> wrote:

I have a doubt regarding the behaviour of read() on an ext3
filesystem. To elucidate my doubts, I wrote a small program opens a
file and reads one byte at a time and sleeps for a while. I deleted
the file while the read was still in progress and I noticed that the
read still succeeds. How does this work? Does the kernel not free the
inode when the file is deleted but there is a pending read? To check
this, instead of deleting, I tried shred-ding the file, the read still
gets the correct data.

That's standard UNIX behaviour. The file exists on disk until all
references to it have disappeared (references including the open
file handle). All you do by typing "rm" is delete a reference/link to
it from a particular directory, not (necessarily) delete the file.
That's why the system call is called "unlink".

Alex

_______________________________________________
Ext3-users mailing list
Ext3-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ext3-users

[Index of Archives]         [Linux RAID]     [Kernel Development]     [Red Hat Install]     [Video 4 Linux]     [Postgresql]     [Fedora]     [Gimp]     [Yosemite News]

  Powered by Linux