Go语言的os
库提供了丰富的操作系统功能,包括文件操作、环境变量访问、进程管理等。以下是一些os
库常用的功能和示例:
1. 文件操作
- 创建文件:使用
os.Create
函数可以创建一个新文件。 - 打开文件:使用
os.Open
函数可以打开一个已存在的文件。 - 读取文件:使用
os.ReadFile
函数可以读取文件内容。 - 写入文件:使用
os.WriteFile
函数可以写入文件内容。
2. 环境变量
- 获取环境变量:使用
os.Getenv
函数可以获取环境变量的值。 - 设置环境变量:使用
os.Setenv
函数可以设置环境变量。
3. 进程管理
- 执行命令:使用
os/exec
包中的Command
函数可以执行系统命令。 - 获取当前进程ID:使用
os.Getpid
函数可以获取当前进程的ID。
4. 目录操作
- 创建目录:使用
os.Mkdir
或os.MkdirAll
函数可以创建目录。 - 读取目录:使用
os.ReadDir
函数可以读取目录中的文件和子目录。
5. 错误处理
- 检查错误:
os
库中的函数通常会返回一个错误对象,可以通过if err != nil
来检查是否有错误发生。
示例代码
package main
import (
"fmt"
"os"
)
func main() {
// 创建文件
file, err := os.Create("example.txt")
if err != nil {
fmt.Println("Error creating file:", err)
return
}
defer file.Close()
// 写入文件
_, err = file.WriteString("Hello, World!\n")
if err != nil {
fmt.Println("Error writing to file:", err)
return
}
// 读取文件
data, err := os.ReadFile("example.txt")
if err != nil {
fmt.Println("Error reading file:", err)
return
}
fmt.Println("File content:", string(data))
// 获取环境变量
name := os.Getenv("USER")
fmt.Println("User:", name)
// 设置环境变量
err = os.Setenv("EXAMPLE_VAR", "example_value")
if err != nil {
fmt.Println("Error setting environment variable:", err)
return
}
// 执行命令
cmd := exec.Command("echo", "Hello from command")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Error executing command:", err)
return
}
fmt.Println("Command output:", string(output))
// 获取当前进程ID
pid := os.Getpid()
fmt.Println("Process ID:", pid)
}
这个示例展示了如何使用os
库进行文件操作、环境变量访问、执行命令和获取进程ID。记得在实际使用中根据需要导入os/exec
包。