こんにちは、kurumi-bioです。
第9回目の**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
NewSyscallError関数
func NewSyscallError(syscall string, err error) error
◆テストコード
package main import ( "errors" "fmt" "os" ) func main() { e := os.NewSyscallError("Syscall", errors.New("Error")) fmt.Fprintf(os.Stderr, "%v\n", e) }
◆実行結果(Windows)
Pipe関数
func Pipe() (r *File, w *File, err error)
◆テストコード
package main import ( "fmt" "os" ) func main() { var s string r, w, _ := os.Pipe() fmt.Fprint(w, "aaa") w.Close() fmt.Fscan(r, &s) fmt.Printf("%s\n", s) }
◆実行結果(Windows)
**広告の下に続きます。**
ReadFile関数
func ReadFile(name string) ([]byte, error)
◆テストコード
package main import ( "fmt" "os" ) func read(fileName string) { b, e := os.ReadFile(fileName) if e != nil { fmt.Fprintf(os.Stderr, "%v\n", os.NewSyscallError("os.ReadFile", e)) return } fmt.Printf("%s\n", b) } func main() { read("test.txt") read("non.txt") }
◆実行結果(Windows)
ReadFile関数
func Readlink(name string) (string, error)
◆テストコード
package main import ( "fmt" "os" ) func rl(fileName string) { s, e := os.Readlink(fileName) if e != nil { fmt.Fprintf(os.Stderr, "%v [%t]\n", os.NewSyscallError("os.Readlink", e), os.IsNotExist(e)) return } fmt.Printf("%s\n", s) } func main() { rl("symboliclink.txt") rl("hardlink.txt") }
◆実行結果(Windows)
◆実行結果(Linux)
**最後までご覧いただきありがとうございます**