os库包含了os、os/exec、os/signal、os/user
目录
一、os
常用函数,由包名“os”直接调用
//1.获取主机名
hostName, err := os.Hostname()
if err != nil {
log.Fatalln(err)
}
fmt.Println(hostName)
//2.获取系统环境变量并循环打印
envList := os.Environ()
for _, val := range envList {
fmt.Println(val)
}
//3.通过环境变量名字获取变量值
val := os.Getenv("GOPATH")
fmt.Println(val)
//4.设置或修改环境变量
err := os.Setenv("GOPATH", "/work/gopath")
fmt.Println(err)
//5.以指定的code终止程序
func test() {
defer fmt.Println("os.Exit()时不会执行defer")
os.Exit(1)
return
}
//6.获取程序执行者的uid
uid := os.Getuid()
fmt.Println(uid)
//7.获取当前进程id
pid := os.Getpid()
fmt.Println(pid)
//8.获取父进程id
ppid := os.Getppid()
fmt.Println(ppid)
//9.获取根路径
dir, _ := os.Getwd()
fmt.Println(dir)
//10.修改文件权限
err := os.Chmod("text.txt", 0777)
//11.以指定权限和名称创建一个目录
err := os.Mkdir("test_dir", 0755)
//12.创建多级目录
err := os.MkdirAll("test_dir/test1/test2", 0755)
fmt.Println(err)
//13.修改文件名称
err := os.Rename("text", "text1")
//14.删除单个文件
err := os.Remove("text")
//15.按路径删除一个文件或目录
err := os.RemoveAll("test_dir/test1/test2/file1.txt")
//16.创建一个文件
file, err := os.Create("text2")
//17.打开文件并返回文件指针
file, err := os.Open("text2")
文件操作常用方法,由文件句柄调用
//打开文件得到一个文件句柄(获取指向文件结构体的指针)
file, _ := os.Open("text2")
//通过结构体指针调用结构体的方法
//1.获取文件名
fileName := file.Name()
fmt.Printf("文件名为: %s", fileName)
//2.获取文件信息
fileInfo, _ := file.Stat()
fmt.Printf("文件信息: %+v", fileInfo)
//3.修改文件权限模式
file.Chmod(0666)
//4.读取文件内容
content := make([]byte, 100)
n, err := file.Read(content)
if err != nil {
log.Fatalln(err)
}
fmt.Printf("read %d bytes: %q\n", n, content[:n])
//5.写入内容
file, _ := os.OpenFile("text2", os.O_RDWR, 0666)
n, err := file.Write([]byte("新写入的内容"))
注意:
文件最后操作完需执行
file.Close()