標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

Go 1.14.4 で直ったという、Windows で O_CREATE | O_TRUNC で既存のファイル開くと読み取り専用なってしまうバグとは

「あれ?これ nyagos のリダイレクトで発生するんじゃね?」と思ったが、発生しなかった。 どうやら、

  • os.OpenFile の第3引数でパーミッションを0などにした時に発生する
  • UNIX的な挙動としては、この第3引数は新規ファイルを作成する時だけ使うべきもので、 既存のファイルを0バイトにしてから開く場合は適用されてはダメ
    • Windows 版も UNIX と同じような振る舞いをすべきなのに、そうなっておらず、新規ファイル・既存ファイル関係なく、パーミッションが変わってしまっていた。

というものらしいです。うん、関係なかったな!