Re: st_ctimespec not implemented?
site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Le 26 juin 08 à 16:02, Chris a écrit : On 26/06/2008, at 11:46 PM, Jean-Daniel Dupas wrote: Le 26 juin 08 à 15:29, Chris a écrit : _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com I was looking for a way to figure out how long files have been in the trash, and I was hoping that stat.st_ctimespec would provide that, seeing as stat(2) says that rename(2) and link(2) will update the ctime. However this isn't the case. Renaming files doesn't affect the ctime. Is this because Darwin doesn't implement ctime, or because HFS+ doesn't implement it, or am I missing something else? Or because moving a file on HFS+ is not considere as renaming it ? On HFS+, the file name is just an other metadata (like ctime) and is not formely part of the path. Moving a file in HFS+ is just changing its parent, not its name. ctime on unix has nothing really to do with the path either, but rather the inode. Even on HFS, making another link to the file will update the ctime. In fact that is an old fashioned way of renaming on unix - link to the new path and unlink the old path (which temporarily changed the inode link count). Since BSD unix, rename is now done in the kernel rather than link/unlink, but it is still considered an event that is supposed to update the ctime. I guess HFS must have a ctime, since link(2) updates it. So wouldn't this be considered a bug? If the UNIX'03 spec says that rename should update the ctime but it does not, yes this can be probably considered as a bug. smime.p7s
participants (1)
-
Jean-Daniel Dupas