On Linux and some other POSIX systems, lseek supports two additional values for whence relating to sparse files, SEEK_HOLE and SEEK_DATA. I believe these should be supported by rustix.
For reference, some filesystems have files with large amounts of zero data that can be optionally marked "sparse", and these sections won't be allocated on disk. This feature can be exposed to userspace applications to improve the performance of some operations, like cp.
Although this is technically not a part of the POSIX standard, it has been proposed for issue 8.
As an example of prior art, nix already exposes this ability.
On Linux and some other POSIX systems,
lseeksupports two additional values forwhencerelating to sparse files,SEEK_HOLEandSEEK_DATA. I believe these should be supported byrustix.For reference, some filesystems have files with large amounts of zero data that can be optionally marked "sparse", and these sections won't be allocated on disk. This feature can be exposed to userspace applications to improve the performance of some operations, like
cp.Although this is technically not a part of the POSIX standard, it has been proposed for issue 8.
As an example of prior art,
nixalready exposes this ability.