JuliaLang/julia

wanted: `open(create=true, exclusive=true)` dead or alive

Open

#33,947 opened on Nov 26, 2019

View on GitHub
 (2 comments) (1 reaction) (0 assignees)Julia (5,773 forks)batch import
featuregood first issue

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.)

Contributor guide