Quite frankly, I don't know why filesystems don't provide these things.
I have read that Windows has a transactional API, but they've actually deprecated it! [2] They say it's because few programs use it.
I mean, sure, that might be true, but I bet it's really important for those programs that do use it.
Bonus question: why does Windows hide its equivalent of `openat()` in the NT API? [3] Rust code seems to claim its fundamental to the NT kernel [4], so why is it not exposed?
[1]: https://news.ycombinator.com/item?id=32190032
[2]: https://docs.microsoft.com/en-us/windows/win32/fileio/deprec...
[3]: https://docs.microsoft.com/en-us/windows/win32/api/winternl/...
[4]: https://github.com/rust-lang/rust/blob/1c63ec48b8cbf553d291a...