「GO基础库」os包的全面解析

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 源码进行查阅。

相关推荐
学长毕设8 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
滴滴答答哒9 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
captain37611 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
IT_陈寒12 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
泡海椒13 小时前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go13 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥430913 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端
岩钧13 小时前
New API 源码解析:一个生产级 AI 网关的架构与实现
后端
学到老活到老13 小时前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
用户3600555790013 小时前
Kestrel_VLLM - 25 · 全注意力层设备化、整层对拍与访存粒度
后端