【Go】つぶやきos.Create()【エラー記録】
os.Create() でpermission errorに遭遇
os.Create()でファイル作成するコードで出会ったパーミッションエラーに関するメモです。
- エラー起きたコード
package main import ( "log" "os" ) func main() { fp, err := os.Create("hoge.txt") if err != nil { log.Println("[os.Create]:", err) } defer fp.Close() fp.WriteString("hogehoge") }
- 実行結果
$ go run main.go 2021/09/27 17:27:23 [os.Create]: open hoge.txt: permission denied
ファイルのパーミッションエラーかな?と思ったものの、よくよく調べるとディレクトリのパーミッションが原因のようでした。
参考
修正後コード
package main import ( "log" "os" ) func main() { /* os.Createでのエラー回避のため カレントディレクトリのパーミッション変更 refs: https://stackoverflow.com/questions/58403134/go-permission-denied-when-trying-to-create-a-file-in-a-newly-created-directory */ workDir, _ := os.Getwd() os.Chmod(workDir, 0777) fp, err := os.Create("hoge.txt") if err != nil { log.Println("[os.Create]", err) } defer fp.Close() fp.WriteString("hogehoge") }