OS 包可以用来做什么?
Go
语言的OS
包是标准库中的一个重要组成部分,它提供了与操作系统进行交互的功能。
该包通过封装一系列系统调用,使开发者能够在Go
程序中访问和操作底层操作系统的资源。
OS
包的设计依赖于不同的操作系统平台,以提供特定平台上可用的功能。
例如,一些某个系统特定的功能,需要使用syscall来
获取。实际上,os
包依赖于syscall
。
常用的 os
包函数
-
系统相关:
os.Environ
:返回一个包含所有环境变量名和值的字符串切片。os.Getenv
:根据环境变量名获取对应的值。os.Setenv
:设置环境变量的值。os.Hostname
:获取主机名。os.ExpandEnv
:扩展环境变量。os.ExpandUser
:扩展用户路径。os.Expandvars
:扩展环境变量和用户路径。os.Syscall
:调用系统底层函数。os.Unsetenv
: 取消设置单个环境变量。os.Clearenv
: 删除全部环境变量。os.LookupEnv
: 检测某个环境是否已经设置。os.NewSyscallError
: 给指定系统系统调用名称和错误详细信息。os.IsTimeout
: 判断是否超时。
-
标准化输出:
os.Stdout
:标准输出的文件对象。os.Stderr
:标准错误输出的文件对象。os.Stdin
:标准输入的文件对象。
-
文件目录相关:
os.Open
:打开文件,返回文件对象。os.Create
:创建文件,返回文件对象。os.Remove
:删除文件。os.Rename
:重命名文件或目录。os.Chdir
:改变当前工作目录。os.TempDir
:获取系统临时目录。os.TempFile
:在指定目录下创建一个临时文件,返回文件对象。os.Stat
:获取文件或目录的状态信息。os.MkdirAll
:创建多级目录。os.RemoveAll
:递归删除目录及其内容。os.IsNotExist
:判断路径是否存在。os.IsDir
:判断路径是否为目录。os.IsFile
:判断路径是否为文件。os.Symlink
:创建符号链接。os.ReadDir
:读取目录内容。os.WriteFile
:将数据写入文件。os.ReadFile
:从文件中读取数据。os.Chmod
:修改文件权限。os.Chown
:修改文件所有者和所属组。os.Truncate
:截断文件到指定长度。os.Rename
:重命名文件或目录。os.Getwd
:获取当前工作目录。os.Setuid
:设置用户 ID。os.Setgid
:设置组 ID。os.FindExecutable
:查找可执行文件的绝对路径。os.Link
: 创建新文件作为指向旧名称文件的硬链接。os.SameFile
: 判断 文件1 和 文件2 是否是同一个描述的文件。os.Readlink
: 返回命名符号的链接目标。os.IsExist
: 判断文件或目录存在。os.IsNotExist
: 判断文件或目录不存在。
-
进程相关:
os.Getpid
:获取当前进程 ID。os.Getppid
:获取父进程 ID。os.Pipe
:创建管道。os.Fork
:创建子进程。os.Execvp
:执行外部命令,替换当前进程。os.Signal
:发送信号给进程。os.Wait
:等待子进程结束并返回其状态信息。os.Exec
:执行外部命令,替换当前进程。os.FindProcess
:查找指定名称的进程 ID。os.FindProcessByPid
:根据进程 ID 查找进程。os.Kill
:杀死当前进程 ID。os.Relese
: 释放当前进程资源。os.UserTime
: 返回已退出进程及其子进程的用户 CPU 时间。os.SystemTime
: 返回退出进程及其子进程的系统 CPU 时间。os.Exit
:退出程序,并返回状态码。os.Exited
: 判断程序是否退出。os.Success
: 判断程序是否成功退出。os.Sys
: 返回有关的系统相关退出信息。os.SysUsage
: 返回有关的系统相关资源使用情况信息。os.Executable
: 返回启动的可执行文件的路径名。
结束语
主要列举了 os
包常用的一些函数,还有一部分没有举例到,如果有遗漏的请自行翻查 Golang
源码进行查阅。