2017-01-14 01:05:42 +01:00
|
|
|
// Copyright 2016 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package os_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func ExampleOpenFile() {
|
|
|
|
f, err := os.OpenFile("notes.txt", os.O_RDWR|os.O_CREATE, 0755)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
if err := f.Close(); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-09-14 19:11:35 +02:00
|
|
|
func ExampleOpenFile_append() {
|
|
|
|
// If the file doesn't exist, create it, or append to the file
|
|
|
|
f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
if _, err := f.Write([]byte("appended some data\n")); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
if err := f.Close(); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-14 01:05:42 +01:00
|
|
|
func ExampleChmod() {
|
|
|
|
if err := os.Chmod("some-filename", 0644); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleChtimes() {
|
|
|
|
mtime := time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC)
|
|
|
|
atime := time.Date(2007, time.March, 2, 4, 5, 6, 0, time.UTC)
|
|
|
|
if err := os.Chtimes("some-filename", atime, mtime); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleFileMode() {
|
2017-09-14 19:11:35 +02:00
|
|
|
fi, err := os.Lstat("some-filename")
|
2017-01-14 01:05:42 +01:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
switch mode := fi.Mode(); {
|
|
|
|
case mode.IsRegular():
|
|
|
|
fmt.Println("regular file")
|
|
|
|
case mode.IsDir():
|
|
|
|
fmt.Println("directory")
|
|
|
|
case mode&os.ModeSymlink != 0:
|
|
|
|
fmt.Println("symbolic link")
|
|
|
|
case mode&os.ModeNamedPipe != 0:
|
|
|
|
fmt.Println("named pipe")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleIsNotExist() {
|
|
|
|
filename := "a-nonexistent-file"
|
|
|
|
if _, err := os.Stat(filename); os.IsNotExist(err) {
|
|
|
|
fmt.Printf("file does not exist")
|
|
|
|
}
|
|
|
|
// Output:
|
|
|
|
// file does not exist
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
os.Setenv("USER", "gopher")
|
|
|
|
os.Setenv("HOME", "/usr/gopher")
|
|
|
|
os.Unsetenv("GOPATH")
|
|
|
|
}
|
|
|
|
|
2018-09-24 23:46:21 +02:00
|
|
|
func ExampleExpand() {
|
|
|
|
mapper := func(placeholderName string) string {
|
|
|
|
switch placeholderName {
|
|
|
|
case "DAY_PART":
|
|
|
|
return "morning"
|
|
|
|
case "USER":
|
|
|
|
return "Gopher"
|
|
|
|
}
|
|
|
|
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
fmt.Println(os.Expand("Good ${DAY_PART}, $USER!", mapper))
|
|
|
|
|
|
|
|
// Output:
|
|
|
|
// Good morning, Gopher!
|
|
|
|
}
|
|
|
|
|
2017-01-14 01:05:42 +01:00
|
|
|
func ExampleExpandEnv() {
|
|
|
|
fmt.Println(os.ExpandEnv("$USER lives in ${HOME}."))
|
|
|
|
|
|
|
|
// Output:
|
|
|
|
// gopher lives in /usr/gopher.
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLookupEnv() {
|
|
|
|
show := func(key string) {
|
|
|
|
val, ok := os.LookupEnv(key)
|
|
|
|
if !ok {
|
|
|
|
fmt.Printf("%s not set\n", key)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%s=%s\n", key, val)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
show("USER")
|
|
|
|
show("GOPATH")
|
|
|
|
|
|
|
|
// Output:
|
|
|
|
// USER=gopher
|
|
|
|
// GOPATH not set
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleGetenv() {
|
|
|
|
fmt.Printf("%s lives in %s.\n", os.Getenv("USER"), os.Getenv("HOME"))
|
|
|
|
|
|
|
|
// Output:
|
|
|
|
// gopher lives in /usr/gopher.
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleUnsetenv() {
|
|
|
|
os.Setenv("TMPDIR", "/my/tmp")
|
|
|
|
defer os.Unsetenv("TMPDIR")
|
|
|
|
}
|