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.Mkdiros.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包。