January 8th, 2008

amazon

Dear Lazyweb. Open by inode.

For the past twenty years, I've always assumed that, given knowledge of a file's inode number, there was some efficient way to open(2) that file by inode instead of name, and I've just never felt the need to use it.

Now I feel the desire to do that, and cannot find how. Searching google for "open by inode" just gives me references to stuff on how to implement Linux VFS, and/or how to open a file from inside kernel space, not from user space.

The openat(2) looks like a half-assed way to get some but not all of the same optimization.

So, is there a way to "open by inode" from user space, and how do I do it?