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

相关推荐
喵手6 分钟前
如何利用Java的Stream API提高代码的简洁度和效率?
java·后端·java ee
掘金码甲哥13 分钟前
全网最全的跨域资源共享CORS方案分析
后端
m0_4805026420 分钟前
Rust 入门 生命周期-next2 (十九)
开发语言·后端·rust
张醒言26 分钟前
Protocol Buffers 中 optional 关键字的发展史
后端·rpc·protobuf
鹿鹿的布丁43 分钟前
通过Lua脚本多个网关循环外呼
后端
墨子白43 分钟前
application.yml 文件必须配置哇
后端
xcya1 小时前
Java ReentrantLock 核心用法
后端
用户466537015051 小时前
如何在 IntelliJ IDEA 中可视化压缩提交到生产分支
后端·github
小楓12011 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
天天摸鱼的java工程师1 小时前
Java 解析 JSON 文件:八年老开发的实战总结(从业务到代码)
java·后端·面试