こんにちは、kurumi-bioです。
第11回目のosパッケージ(標準ライブラリー)の学習です。
環境
- Windows
OSバージョン:Windows11 Home 22H2
Go言語のバージョン:go version go1.20 windows/amd64 - Linux
OSバージョン:openSUSE Leap 15.4
Go言語のバージョン:go version go1.20.1 linux/amd64
Setenv関数
func Setenv(key, value string) error
◆テストコード
package main import ( "fmt" "os" ) func main() { e := os.Setenv("TEST", "TEST") if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Setenv", e)) return } fmt.Printf("TEST=[%s]\n", os.Getenv("TEST")) e = os.Setenv("TEST", fmt.Sprintf("%s;TEST2", os.Getenv("TEST"))) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Setenv", e)) return } fmt.Printf("TEST=[%s]\n", os.Getenv("TEST")) }
◆実行結果(Windows)
Symlink関数
func Symlink(oldname, newname string) error
◆テストコード
package main import ( "fmt" "os" ) func cf(filePath string) { e := os.WriteFile(filePath, []byte("Write Test"), 0666) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.WriteFile", e)) return } } func mk(dirName string) { e := os.Mkdir(dirName, 0100) if e != nil { fmt.Fprintf(os.Stderr, "Error: %v \n", e) os.Exit(1) } } func sl(old, new string) { e := os.Symlink(old, new) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Symlink", e)) return } } func main() { cf("linkTest") sl("linkTest", "linkTest-s") sl("non", "non-s") mk("testDir") sl("testDir", "testDir-s") }
◆実行結果(Windows)
◆実行結果(Linux)
広告の下に続きます。
TempDir関数
func TempDir() string
◆テストコード
package main import ( "fmt" "os" ) func main() { fmt.Printf("TempDir=[%s]\n", os.TempDir()) }
◆実行結果(Windows)
Truncate関数
func Truncate(name string, size int64) error
◆テストコード
package main import ( "fmt" "os" ) func ps(fileName string) { f, e := os.Open(fileName) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Open", e)) return } fi, e2 := f.Stat() if e2 != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Stat", e)) return } fmt.Printf("size=[%d]\n", fi.Size()) } func sl(old, new string) { e := os.Symlink(old, new) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Symlink", e)) return } } func tc(filename string, size int64) { e := os.Truncate(filename, size) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.Truncate", e)) return } } func main() { tc("truntest", 64) ps("truntest") tc("truntest", 32) ps("truntest") sl("truntest", "truntest-s") tc("truntest-s", 128) ps("truntest") }
◆実行結果(Windows)
最後までご覧いただきありがとうございます