likes
comments
collection
share

「GO标准库」os包的全面解析

作者站长头像
站长
· 阅读数 22

OS 包可以用来做什么?

Go语言的OS包是标准库中的一个重要组成部分,它提供了与操作系统进行交互的功能。

该包通过封装一系列系统调用,使开发者能够在Go程序中访问和操作底层操作系统的资源。

OS包的设计依赖于不同的操作系统平台,以提供特定平台上可用的功能。

例如,一些某个系统特定的功能,需要使用syscall来获取。实际上,os包依赖于syscall

常用的 os 包函数

  • 系统相关:

    1. os.Environ:返回一个包含所有环境变量名和值的字符串切片。
    2. os.Getenv:根据环境变量名获取对应的值。
    3. os.Setenv:设置环境变量的值。
    4. os.Hostname:获取主机名。
    5. os.ExpandEnv:扩展环境变量。
    6. os.ExpandUser:扩展用户路径。
    7. os.Expandvars:扩展环境变量和用户路径。
    8. os.Syscall:调用系统底层函数。
    9. os.Unsetenv: 取消设置单个环境变量。
    10. os.Clearenv: 删除全部环境变量。
    11. os.LookupEnv: 检测某个环境是否已经设置。
    12. os.NewSyscallError: 给指定系统系统调用名称和错误详细信息。
    13. os.IsTimeout: 判断是否超时。
  • 标准化输出:

    1. os.Stdout:标准输出的文件对象。
    2. os.Stderr:标准错误输出的文件对象。
    3. os.Stdin:标准输入的文件对象。
  • 文件目录相关:

    1. os.Open:打开文件,返回文件对象。
    2. os.Create:创建文件,返回文件对象。
    3. os.Remove:删除文件。
    4. os.Rename:重命名文件或目录。
    5. os.Chdir:改变当前工作目录。
    6. os.TempDir:获取系统临时目录。
    7. os.TempFile:在指定目录下创建一个临时文件,返回文件对象。
    8. os.Stat:获取文件或目录的状态信息。
    9. os.MkdirAll:创建多级目录。
    10. os.RemoveAll:递归删除目录及其内容。
    11. os.IsNotExist:判断路径是否存在。
    12. os.IsDir:判断路径是否为目录。
    13. os.IsFile:判断路径是否为文件。
    14. os.Symlink:创建符号链接。
    15. os.ReadDir:读取目录内容。
    16. os.WriteFile:将数据写入文件。
    17. os.ReadFile:从文件中读取数据。
    18. os.Chmod:修改文件权限。
    19. os.Chown:修改文件所有者和所属组。
    20. os.Truncate:截断文件到指定长度。
    21. os.Rename:重命名文件或目录。
    22. os.Getwd:获取当前工作目录。
    23. os.Setuid:设置用户 ID。
    24. os.Setgid:设置组 ID。
    25. os.FindExecutable:查找可执行文件的绝对路径。
    26. os.Link: 创建新文件作为指向旧名称文件的硬链接。
    27. os.SameFile: 判断 文件1 和 文件2 是否是同一个描述的文件。
    28. os.Readlink: 返回命名符号的链接目标。
    29. os.IsExist: 判断文件或目录存在。
    30. os.IsNotExist: 判断文件或目录不存在。
  • 进程相关:

    1. os.Getpid:获取当前进程 ID。
    2. os.Getppid:获取父进程 ID。
    3. os.Pipe:创建管道。
    4. os.Fork:创建子进程。
    5. os.Execvp:执行外部命令,替换当前进程。
    6. os.Signal:发送信号给进程。
    7. os.Wait:等待子进程结束并返回其状态信息。
    8. os.Exec:执行外部命令,替换当前进程。
    9. os.FindProcess:查找指定名称的进程 ID。
    10. os.FindProcessByPid:根据进程 ID 查找进程。
    11. os.Kill:杀死当前进程 ID。
    12. os.Relese: 释放当前进程资源。
    13. os.UserTime: 返回已退出进程及其子进程的用户 CPU 时间。
    14. os.SystemTime: 返回退出进程及其子进程的系统 CPU 时间。
    15. os.Exit:退出程序,并返回状态码。
    16. os.Exited: 判断程序是否退出。
    17. os.Success: 判断程序是否成功退出。
    18. os.Sys: 返回有关的系统相关退出信息。
    19. os.SysUsage: 返回有关的系统相关资源使用情况信息。
    20. os.Executable: 返回启动的可执行文件的路径名。

结束语

主要列举了 os 包常用的一些函数,还有一部分没有举例到,如果有遗漏的请自行翻查 Golang 源码进行查阅。

转载自:https://juejin.cn/post/7295381524316504079
评论
请登录