2020-06-04 Go 1.14.4 で直ったという、Windows で O_CREATE | O_TRUNC で既存のファイル開くと読み取り専用なってしまうバグとは golang os: opening an existing file with O_CREATE|O_TRUNC and permission 0 changes file to be read-only on Windows [1.14 backport] · Issue #39158 · golang/go 「あれ?これ nyagos のリダイレクトで発生するんじゃね?」と思ったが、発生しなかった。 どうやら、 os.OpenFile の第3引数でパーミッションを0などにした時に発生する nyagos は os.Create を使ってるし、パーミッションは基本的に 0 などにしない UNIX的な挙動としては、この第3引数は新規ファイルを作成する時だけ使うべきもので、 既存のファイルを0バイトにしてから開く場合は適用されてはダメ Windows 版も UNIX と同じような振る舞いをすべきなのに、そうなっておらず、新規ファイル・既存ファイル関係なく、パーミッションが変わってしまっていた。 というものらしいです。うん、関係なかったな!