wanted: `open(create=true, exclusive=true)` dead or alive
#33,947 opened on Nov 26, 2019
Repository metrics
- Stars
- (48,709 stars)
- PR merge metrics
- (Avg merge 20d 6h) (157 merged PRs in 30d)
Description
Sometimes useful, for creating atomic lockfiles (https://github.com/vtjnash/Pidfile.jl) or secure tempfiles: https://github.com/JuliaLang/julia/blob/31bf76f8a1719e07612b9af4196bfc924cf73e21/base/file.jl#L586
The exclusive=true flag (only valid in combination with create=true) should simply map the the underlying O_EXCL option to open (this exists everywhere that Julia runs).
(could also try to add O_NOFOLLOW, though FILE_FLAG_OPEN_REPARSE_POINT is more like O_SYMLINK, and so is hard to implement everywhere. And there's a couple others like RANDOM, SEQUENTIAL, SYNC, DSYNC, NOATIME, DIRECT, and SHORT_LIVED that could even be filtered out when not supported.)