os包提供了操作系统函数的不依赖平台的接口。设计为Unix风格的,虽然错误处理是go风格的;失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。例如,如果某个使用一个文件名的调用(如Open、Stat)失败了,打印错误时会包含该文件名,错误类型将为*PathError,其内部可以解包获得更多信息。
Constants
1 2 3 4 5 6 7 8 9 10
| const ( O_RDONLY int = syscall.O_RDONLY O_WRONLY int = syscall.O_WRONLY O_RDWR int = syscall.O_RDWR O_APPEND int = syscall.O_APPEND O_CREATE int = syscall.O_CREAT O_EXCL int = syscall.O_EXCL O_SYNC int = syscall.O_SYNC O_TRUNC int = syscall.O_TRUNC )
|
用于包装底层系统的参数用于Open函数,不是所有的flag都能在特定系统里使用的。
1 2 3 4 5
| const ( SEEK_SET int = 0 SEEK_CUR int = 1 SEEK_END int = 2 )
|
指定Seek函数从何处开始搜索(即相对位置)。
1 2 3 4
| const ( PathSeparator = '/' PathListSeparator = ':' )
|
Variables
1 2 3 4 5 6
| var ( ErrInvalid = errors.New("invalid argument") ErrPermission = errors.New("permission denied") ErrExist = errors.New("file already exists") ErrNotExist = errors.New("file does not exist") )
|
1
| func Hostname() (name string, err error)
|
Hostname返回内核提供的主机名。
Getpagesize返回底层的系统内存页的尺寸。
Environ返回表示环境变量的格式为”key=value”的字符串的切片拷贝。
1
| func Getenv(key string) string
|
Getenv检索并返回名为key的环境变量的值。如果不存在该环境变量会返回空字符串。
1
| func Setenv(key, value string) error
|
Setenv设置名为key的环境变量。如果出错会返回该错误。
Clearenv删除所有环境变量。
Exit让当前程序以给出的状态码code退出。一般来说,状态码0表示成功,非0表示出错。程序会立刻终止,defer的函数不会被执行。
1
| func Expand(s string, mapping func(string) string) string
|
Expand函数替换s中的${var}或$var为mapping(var)。例如,os.ExpandEnv(s)等价于os.Expand(s, os.Getenv)。
1
| func ExpandEnv(s string) string
|
ExpandEnv函数替换s中的${var}或$var为名为var 的环境变量的值。引用未定义环境变量会被替换为空字符串。
Getuid返回调用者的用户ID。
Geteuid返回调用者的有效用户ID。
Getgid返回调用者的组ID。
Getegid返回调用者的有效组ID。
1
| func Getgroups() ([]int, error)
|
Getgroups返回调用者所属的所有用户组的组ID。
Getpid返回调用者所在进程的进程ID。
Getppid返回调用者所在进程的父进程的进程ID。
1 2 3 4
| type Signal interface { String() string Signal() // 用来区分其他实现了Stringer接口的类型 }
|
Signal代表一个操作系统信号。一般其底层实现是依赖于操作系统的:在Unix中,它是syscall.Signal类型。
1 2 3 4
| var ( Interrupt Signal = syscall.SIGINT Kill Signal = syscall.SIGKILL )
|
仅有的肯定会被所有操作系统提供的信号,Interrupt(中断信号)和Kill(强制退出信号)。
1
| func Hostname() (name string, err error)
|
Hostname返回内核提供的主机名。
Getpagesize返回底层的系统内存页的尺寸。
Environ返回表示环境变量的格式为”key=value”的字符串的切片拷贝。
1
| func Getenv(key string) string
|
Getenv检索并返回名为key的环境变量的值。如果不存在该环境变量会返回空字符串。
1
| func Setenv(key, value string) error
|
Setenv设置名为key的环境变量。如果出错会返回该错误。
Clearenv删除所有环境变量。
Exit让当前程序以给出的状态码code退出。一般来说,状态码0表示成功,非0表示出错。程序会立刻终止,defer的函数不会被执行。
1
| func Expand(s string, mapping func(string) string) string
|
Expand函数替换s中的${var}或$var为mapping(var)。例如,os.ExpandEnv(s)等价于os.Expand(s, os.Getenv)。
1
| func ExpandEnv(s string) string
|
ExpandEnv函数替换s中的${var}或$var为名为var 的环境变量的值。引用未定义环境变量会被替换为空字符串。
Getuid返回调用者的用户ID。
Geteuid返回调用者的有效用户ID。
Getgid返回调用者的组ID。
Getegid返回调用者的有效组ID。
1
| func Getgroups() ([]int, error)
|
Getgroups返回调用者所属的所有用户组的组ID。
Getpid返回调用者所在进程的进程ID。
Getppid返回调用者所在进程的父进程的进程ID。
1 2 3 4
| type Signal interface { String() string Signal() // 用来区分其他实现了Stringer接口的类型 }
|
Signal代表一个操作系统信号。一般其底层实现是依赖于操作系统的:在Unix中,它是syscall.Signal类型。
1 2 3 4
| var ( Interrupt Signal = syscall.SIGINT Kill Signal = syscall.SIGKILL )
|
仅有的肯定会被所有操作系统提供的信号,Interrupt(中断信号)和Kill(强制退出信号)。