os

Package os

  • import "os"

  • Overview

  • Index

  • Examples

  • Subdirectories

概观

Package os为操作系统功能提供了一个平台无关的接口。虽然错误处理类似于 Go,但设计类似 Unix,失败的调用返回类型错误的值而不是错误号。错误中通常会提供更多信息。例如,如果接收文件名的调用失败(例如 Open 或 Stat ),则错误将在打印时包含失败的文件名,并且将是 * PathError 类型,可能会解压缩以获取更多信息。

OS 界面旨在使所有操作系统均匀。通常不可用的功能出现在系统特定的软件包 syscall 中。

这里有一个简单的例子,打开一个文件并阅读一些文件。

file, err := os.Open("file.go") // For read access. if err != nil { log.Fatal(err) }

如果打开失败,错误字符串将不言自明,如

open file.go: no such file or directory

然后可以将文件的数据读入一段字节。读取和写入从参数切片的长度获取其字节数。

data := make([]byte, 100) count, err := file.Read(data) if err != nil { log.Fatal(err) } fmt.Printf("read %d bytes: %q\n", count, data[:count])

Index

  • Constants

  • Variables

  • func Chdir(dir string) error

  • func Chmod(name string, mode FileMode) error

  • func Chown(name string, uid, gid int) error

  • func Chtimes(name string, atime time.Time, mtime time.Time) error

  • func Clearenv()

  • func Environ() []string

  • func Executable() (string, error)

  • func Exit(code int)

  • func Expand(s string, mapping func(string) string) string

  • func ExpandEnv(s string) string

  • func Getegid() int

  • func Getenv(key string) string

  • func Geteuid() int

  • func Getgid() int

  • func Getgroups() ([]int, error)

  • func Getpagesize() int

  • func Getpid() int

  • func Getppid() int

  • func Getuid() int

  • func Getwd() (dir string, err error)

  • func Hostname() (name string, err error)

  • func IsExist(err error) bool

  • func IsNotExist(err error) bool

  • func IsPathSeparator(c uint8) bool

  • func IsPermission(err error) bool

  • func Lchown(name string, uid, gid int) error

  • func Link(oldname, newname string) error

  • func LookupEnv(key string) (string, bool)

  • func Mkdir(name string, perm FileMode) error

  • func MkdirAll(path string, perm FileMode) error

  • func NewSyscallError(syscall string, err error) error

  • func Readlink(name string) (string, error)

  • func Remove(name string) error

  • func RemoveAll(path string) error

  • func Rename(oldpath, newpath string) error

  • func SameFile(fi1, fi2 FileInfo) bool

  • func Setenv(key, value string) error

  • func Symlink(oldname, newname string) error

  • func TempDir() string

  • func Truncate(name string, size int64) error

  • func Unsetenv(key string) error

  • type File

  • func Create(name string) (*File, error)

  • func NewFile(fd uintptr, name string) *File

  • func Open(name string) (*File, error)

  • func OpenFile(name string, flag int, perm FileMode) (*File, error)

  • func Pipe() (r *File, w *File, err error)

  • func (f *File) Chdir() error

  • func (f *File) Chmod(mode FileMode) error

  • func (f *File) Chown(uid, gid int) error

  • func (f *File) Close() error

  • func (f *File) Fd() uintptr

  • func (f *File) Name() string

  • func (f *File) Read(b []byte) (n int, err error)

  • func (f *File) ReadAt(b []byte, off int64) (n int, err error)

  • func (f *File) Readdir(n int) ([]FileInfo, error)

  • func (f *File) Readdirnames(n int) (names []string, err error)

  • func (f *File) Seek(offset int64, whence int) (ret int64, err error)

  • func (f *File) Stat() (FileInfo, error)

  • func (f *File) Sync() error

  • func (f *File) Truncate(size int64) error

  • func (f *File) Write(b []byte) (n int, err error)

  • func (f *File) WriteAt(b []byte, off int64) (n int, err error)

  • func (f *File) WriteString(s string) (n int, err error)

  • type FileInfo

  • func Lstat(name string) (FileInfo, error)

  • func Stat(name string) (FileInfo, error)

  • type FileMode

  • func (m FileMode) IsDir() bool

  • func (m FileMode) IsRegular() bool

  • func (m FileMode) Perm() FileMode

  • func (m FileMode) String() string

  • type LinkError

  • func (e *LinkError) Error() string

  • type PathError

  • func (e *PathError) Error() string

  • type ProcAttr

  • type Process

  • func FindProcess(pid int) (*Process, error)

  • func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error)

  • func (p *Process) Kill() error

  • func (p *Process) Release() error

  • func (p *Process) Signal(sig Signal) error

  • func (p *Process) Wait() (*ProcessState, error)

  • type ProcessState

  • func (p *ProcessState) Exited() bool

  • func (p *ProcessState) Pid() int

  • func (p *ProcessState) String() string

  • func (p *ProcessState) Success() bool

  • func (p *ProcessState) Sys() interface{}

  • func (p *ProcessState) SysUsage() interface{}

  • func (p *ProcessState) SystemTime() time.Duration

  • func (p *ProcessState) UserTime() time.Duration

  • type Signal

  • type SyscallError

  • func (e *SyscallError) Error() string

例子

Chmod

包文件

dir.go dir_unix.go env.go error.go error_posix.go error_unix.go exec.go exec_posix.go exec_unix.go executable.go executable_procfs.go file.go file_posix.go file_unix.go getwd.go path.go path_unix.go pipe_linux.go proc.go stat_linux.go stat_unix.go sticky_notbsd.go str.go sys.go sys_linux.go sys_unix.go types.go types_unix.go wait_waitid.go

常量

标记为 OpenFile 封装底层系统的标记。并非所有的标志都可以在给定的系统上实现。

const ( O_RDONLY int = syscall.O_RDONLY // open the file read-only. O_WRONLY int = syscall.O_WRONLY // open the file write-only. O_RDWR int = syscall.O_RDWR // open the file read-write. O_APPEND int = syscall.O_APPEND // append data to the file when writing. O_CREATE int = syscall.O_CREAT // create a new file if none exists. O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist O_SYNC int = syscall.O_SYNC // open for synchronous I/O. O_TRUNC int = syscall.O_TRUNC // if possible, truncate file when opened. )

寻求哪些价值。

Deprecated: Use io.SeekStart, io.SeekCurrent, and io.SeekEnd.

const ( SEEK_SET int = 0 // seek relative to the origin of the file SEEK_CUR int = 1 // seek relative to the current offset SEEK_END int = 2 // seek relative to the end )

const ( PathSeparator = '/' // OS-specific path separator PathListSeparator = ':' // OS-specific path list separator )

DevNull 是操作系统“空设备”的名称。在类 Unix 系统上,它是“/ dev / null”; 在Windows上,“NUL”。

const DevNull = "/dev/null"

变量

一些常见系统调用错误的便携式模拟器。

var ( ErrInvalid = errors.New("invalid argument") // methods on File will return this error when the receiver is nil ErrPermission = errors.New("permission denied") ErrExist = errors.New("file already exists") ErrNotExist = errors.New("file does not exist") ErrClosed = errors.New("file already closed") )

Stdin,Stdout 和 Stderr 是打开的文件,指向标准输入,标准输出和标准错误文件描述符。

请注意,Go 运行时写入标准错误以防恐慌和崩溃;关闭 Stderr 可能会导致这些消息到其他地方,也许会导致稍后打开的文件。

var ( Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin") Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout") Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr") )

参数从程序名称开始保存命令行参数。

var Args []string

func Chdir(显示源文件)

func Chdir(dir string) error

Chdir 将当前工作目录更改为指定的目录。如果有错误,它将是 * PathError 类型。

func Chmod(显示源文件)

func Chmod(name string, mode FileMode) error

Chmod 将指定文件的模式更改为模式。如果文件是符号链接,它将更改链接目标的模式。如果有错误,它将是 * PathError 类型。

取决于操作系统,使用模式位的不同子集。

在 Unix 上,使用模式的权限位 ModeSetuid,ModeSetgid 和 ModeSticky 。

在 Windows 上,模式必须是非零的,否则只能使用0200位(所有者可写)模式; 它控制文件的只读属性是设置还是清除。属性。其他位当前未使用。对于只读文件使用模式0400,对于可读+可写文件使用0600。

在计划9中,使用模式的许可位 ModeAppend,ModeExclusive 和 ModeTemporary 。

package main import ( "log" "os" ) func main() { if err := os.Chmod("some-filename", 0644 err != nil { log.Fatal(err) } }

func Chown(显示源文件)

func Chown(name string, uid, gid int) error

Chown 更改指定文件的数字 uid 和 gid 。如果该文件是符号链接,它会更改链接目标的 uid 和 gid 。如果有错误,它将是 * PathError 类型。

在 Windows 上,它总是返回包装在 * PathError 中的 syscall.EWINDOWS 错误。

func Chtimes(显示源文件)

func Chtimes(name string, atime time.Time, mtime time.Time) error

Chtimes 更改指定文件的访问和修改时间,类似于 Unix utime() 或 utimes() 函数。

底层文件系统可能会将值截断或舍入到不太精确的时间单位。如果有错误,它将是 * PathError 类型。

package main import ( "log" "os" "time" ) func main() { mtime := time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC) atime := time.Date(2007, time.March, 2, 4, 5, 6, 0, time.UTC) if err := os.Chtimes("some-filename", atime, mtime err != nil { log.Fatal(err) } }

func Clearenv(显示源文件)

func Clearenv()

Clearenv 删除所有环境变量。

func Environ(显示源文件)

func Environ() []string

Environ 以 “key = value” 的形式返回表示环境的字符串的副本。

func Executable(显示源文件)

func Executable() (string, error)

可执行文件返回启动当前进程的可执行文件的路径名称。不能保证路径仍然指向正确的可执行文件。如果使用符号链接来启动进程,则根据操作系统的不同,结果可能是符号链接或它指向的路径。如果需要稳定的结果, path / filepath.EvalSymlinks 可能会有所帮助。

除非发生错误,否则可执行文件将返回绝对路径。

主要用例是找到相对于可执行文件的资源。

nacl 不支持可执行文件。

func Exit(显示源文件)

func Exit(code int)

退出时会导致当前程序退出并显示给定的状态码。通常,代码0表示成功,错误不为零。该程序立即终止; 延迟功能不运行。

func Expand(显示源文件)

func Expand(s string, mapping func(string) string) string

根据映射函数展开取代字符串中的 $ {var} 或 $ var 。例如,os.ExpandEnv(s) 等同于 os.Expand(s,os.Getenv)。

func ExpandEnv(显示源文件)

func ExpandEnv(s string) string

ExpandEnv 根据当前环境变量的值替换字符串中的 $ {var} 或 $ var。未定义变量的引用被空字符串替换。

package main import ( "fmt" "os" ) func main() { fmt.Println(os.ExpandEnv("$USER lives in ${HOME}.")) }

func Getegid(显示源文件)

func Getegid() int

Getegid 返回调用者的数字有效组 ID 。

在 Windows 上,它返回-1。

func Getenv(显示源文件)

func Getenv(key string) string

Getenv 检索由密钥命名的环境变量的值。它返回值,如果该变量不存在,该值将为空。要区分空值和未设值,请使用 LookupEnv 。

package main import ( "fmt" "os" ) func main() { fmt.Printf("%s lives in %s.\n", os.Getenv("USER"), os.Getenv("HOME")) }

func Geteuid(显示源文件)

func Geteuid() int

Geteuid 返回调用者的数字有效用户标识。

在 Windows 上,它返回-1。

func Getgid(显示源文件)

func Getgid() int

Getgid返回调用者的数字组ID。

在Windows上,它返回-1。

func Getgroups(显示源文件)

func Getgroups() ([]int, error)

Getgroups 返回调用者所属组的数字 ID 列表。

在 Windows 上,它返回 syscall.EWINDOWS 。请参阅 os/user 软件包以获取可能的替代方案。

func Getpagesize(显示源文件)

func Getpagesize() int

Getpagesize 返回底层系统的内存页面大小。

func Getpid(显示源文件)

func Getpid() int

Getpid 返回调用者的进程 ID 。

func Getppid(显示源文件)

func Getppid() int

Getppid 返回调用者父进程的 ID 。

func Getuid(显示源文件)

func Getuid() int

Getuid 返回调用者的数字用户标识。

在 Windows 上,它返回-1。

func Getwd(显示源文件)

func Getwd() (dir string, err error)

Getwd 返回与当前目录对应的根路径名称。如果当前目录可以通过多个路径到达(由于符号链接),Getwd 可以返回其中任何一个。

func Hostname(显示源文件)

func Hostname() (name string, err error)

主机名返回内核报告的主机名。

func IsExist(显示源文件)

func IsExist(err error) bool

IsExist 返回一个布尔值,指示是否已知错误报告文件或目录已存在。它由 ErrExist 满足以及一些系统调用错误。

func IsNotExist(显示源文件)

func IsNotExist(err error) bool

IsNotExist 返回一个布尔值,指示是否已知错误报告文件或目录不存在。它由 ErrNotExist 以及一些系统调用错误满足。

package main import ( "fmt" "os" ) func main() { filename := "a-nonexistent-file" if _, err := os.Stat(filename os.IsNotExist(err) { fmt.Printf("file does not exist") } }

func IsPathSeparator(显示源文件)

func IsPathSeparator(c uint8) bool

IsPathSeparator 报告 c 是否是目录分隔符。

func IsPermission(显示源文件)

func IsPermission(err error) bool

IsPermission 返回一个布尔值,指示是否已知错误报告许可被拒绝。它由 ErrPermission 以及一些系统调用错误满足。

func Lchown(显示源文件)

func Lchown(name string, uid, gid int) error

Lchown 更改指定文件的数字 uid 和 gid 。如果该文件是符号链接,它会更改链接本身的 uid 和 gid 。如果有错误,它将是 * PathError 类型。

在 Windows 上,它总是返回包装在 * PathError 中的 syscall.EWINDOWS 错误。

func Link(显示源文件)

func Link(oldname, newname string) error

链接创建新名称作为旧名称文件的硬链接。如果有错误,它将是 * LinkError 类型。

func LookupEnv(显示源文件)

func LookupEnv(key string) (string, bool)

LookupEnv 检索由密钥命名的环境变量的值。如果变量存在于环境中,则返回值(可能为空),布尔值为 true 。否则,返回的值将为空,布尔值将为 false 。

package main import ( "fmt" "os" ) func main() { show := func(key string) { val, ok := os.LookupEnv(key) if !ok { fmt.Printf("%s not set\n", key) } else { fmt.Printf("%s=%s\n", key, val) } } show("USER") show("GOPATH") }

func Mkdir(显示源文件)

func Mkdir(name string, perm FileMode) error

Mkdir 使用指定的名称和权限位创建一个新目录。如果有错误,它将是 * PathError 类型。

func MkdirAll(显示源文件)

func MkdirAll(path string, perm FileMode) error

MkdirAll 会创建一个名为 path 的目录以及任何必要的父项,并返回 nil ,否则返回错误。许可位 perm 用于 MkdirAll 创建的所有目录。如果 path 已经是一个目录,MkdirAll 什么也不做,并返回 nil 。

func NewSyscallError(显示源文件)

func NewSyscallError(syscall string, err error) error

NewSyscallError 返回一个新的 SyscallError 作为错误,并给出系统调用名称和错误详细信息。为方便起见,如果 err 为零,则 NewSyscallError 返回 nil 。

func Readlink(显示源文件)

func Readlink(name string) (string, error)

Readlink 返回指定符号链接的目的地。如果有错误,它将是 * PathError 类型。

func Remove(显示源文件)

func Remove(name string) error

删除将删除指定的文件或目录。如果有错误,它将是 * PathError 类型。

func RemoveAll(显示源文件)

func RemoveAll(path string) error

RemoveAll 移除路径及其包含的任何子项。它删除所有可能的东西,但返回遇到的第一个错误。如果路径不存在,RemoveAll 返回 nil(无错误)。

func Rename(显示源文件)

func Rename(oldpath, newpath string) error

重命名(移动)旧路径到新路径。如果 newpath 已经存在并且不是目录,则重命名将替换它。当 oldpath和 newpath 位于不同的目录中时,可能会应用 OS 特定的限制。如果有错误,它将是 * LinkError 类型。

func SameFile(显示源文件)

func SameFile(fi1, fi2 FileInfo) bool

SameFile 报告 fi1 和 fi2 是否描述相同的文件。例如,在 Unix 上,这意味着两个基础结构的设备和 inode 字段是相同的; 在其他系统上,决策可以基于路径名称。 SameFile 仅适用于此包的统计信息返回的结果。在其他情况下它返回 false 。

func Setenv(显示源文件)

func Setenv(key, value string) error

Setenv 设置由密钥命名的环境变量的值。它返回一个错误,如果有的话。

func Symlink(显示源文件)

func Symlink(oldname, newname string) error

符号链接创建新名称作为旧名称的符号链接。如果有错误,它将是 * LinkError 类型。

func TempDir(显示源文件)

func TempDir() string

TempDir 返回用于临时文件的默认目录。

在 Unix 系统上,如果非空则返回 $TMPDIR,否则返回 /tmp 。在 Windows 上,它使用 GetTempPath ,从%TMP%,%TEMP%,%USERPROFILE%或Windows目录中返回第一个非空值。在 Plan 9 中,它返回/ tmp。

该目录既不保证存在也不具有可访问的权限。

func Truncate(显示源文件)

func Truncate(name string, size int64) error

截断更改指定文件的大小。如果文件是符号链接,它将更改链接目标的大小。如果有错误,它将是 * PathError 类型。

func Unsetenv(显示源文件)

func Unsetenv(key string) error

Unsetenv 取消单个环境变量。

package main import ( "os" ) func main() { os.Setenv("TMPDIR", "/my/tmp") defer os.Unsetenv("TMPDIR") }

type File(显示源文件)

文件表示一个打开的文件描述符。

type File struct { // contains filtered or unexported fields }

func Create(显示源文件)

func Create(name string) (*File, error)

Create 使用模式0666(在 umask 之前)创建命名文件,如果它已经存在,则截断它。如果成功,返回文件上的方法可用于 I/O ; 关联的文件描述符具有模式 O_RDWR 。如果有错误,它将是 * PathError 类型。

func NewFile(显示源文件)

func NewFile(fd uintptr, name string) *File

NewFile 使用给定的文件描述符和名称返回一个新的 File 。如果 fd 不是有效的文件描述符,则返回值为零。

func Open(显示源文件)

func Open(name string) (*File, error)

打开打开指定文件以供阅读。如果成功,返回文件上的方法可用于读取; 关联的文件描述符具有模式 O_RDONLY 。如果有错误,它将是 * PathError 类型。

func OpenFile(显示源文件)

func OpenFile(name string, flag int, perm FileMode) (*File, error)

OpenFile 是广义的公开呼叫;大多数用户将使用“打开”或“创建”。它打开具有指定标志(O_RDONLY等)和烫发(0666等)的指定文件(如果适用)。如果成功,返回文件上的方法可用于 I/O 。如果有错误,它将是 * PathError 类型。

package main import ( "log" "os" ) func main() { f, err := os.OpenFile("notes.txt", os.O_RDWR|os.O_CREATE, 0755) if err != nil { log.Fatal(err) } if err := f.Close( err != nil { log.Fatal(err) } }

示例(追加)

package main import ( "log" "os" ) func main() { // If the file doesn't exist, create it, or append to the file f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { log.Fatal(err) } if _, err := f.Write([]byte("appended some data\n") err != nil { log.Fatal(err) } if err := f.Close( err != nil { log.Fatal(err) } }

func Pipe(显示源文件)

func Pipe() (r *File, w *File, err error)

管道返回一对连接的文件; 从写入w的r个返回字节中读取。它返回文件和错误(如果有的话)。

func (*File) Chdir(显示源文件)

func (f *File) Chdir() error

Chdir 将当前工作目录更改为文件,该文件必须是目录。如果有错误,它将是 * PathError 类型。

func (*File) Chmod(显示源文件)

func (f *File) Chmod(mode FileMode) error

Chmod将文件的模式更改为模式。如果有错误,它将是* PathError类型。

func (*File) Chown(显示源文件)

func (f *File) Chown(uid, gid int) error

Chown 更改指定文件的数字 uid 和 gid 。如果有错误,它将是 * PathError 类型。

在 Windows 上,它总是返回包装在 * PathError 中的 syscall.EWINDOWS 错误。

func (*File) Close(显示源文件)

func (f *File) Close() error

关闭关闭文件,使其不能用于 I/O 。它返回一个错误,如果有的话。

func (*File) Fd(显示源文件)

func (f *File) Fd() uintptr

Fd 返回引用打开文件的整数 Unix 文件描述符。文件描述符仅在 f.Close 被调用或f被垃圾收集之前有效。

func (*File) Name(显示源文件)

func (f *File) Name() string

Name 返回提供给 Open 的文件的名称。

func (*File) Read(显示源文件)

func (f *File) Read(b []byte) (n int, err error)

Read 从文件读取 len(b) 个字节。它返回读取的字节数和遇到的任何错误。在文件结尾,Read 返回0, io.EOF 。

func (*File) ReadAt(显示源文件)

func (f *File) ReadAt(b []byte, off int64) (n int, err error)

ReadAt 从文件开始以字节偏移关闭读取 len(b) 个字节。它返回读取的字节数和错误(如果有的话)。当 n <len(b) 时, ReadAt 总是返回非零错误。在文件结尾处,该错误是 io.EOF 。

func (*File) Readdir(显示源文件)

func (f *File) Readdir(n int) ([]FileInfo, error)

Readdir 读取与文件关联的目录的内容,并以目录顺序返回最多 n 个 FileInfo 值的片段,Lstat 将返回该片段。随后对相同文件的调用将产生更多的 FileInfos 。

如果 n> 0,Readdir 最多返回 n 个 FileInfo 结构。在这种情况下,如果 Readdir 返回一个空片段,它将返回一个非零错误来解释原因。在目录结尾处,错误是 io.EOF 。

如果 n<=0,则 Readdir 从单个切片中的目录返回所有 FileInfo 。在这种情况下,如果 Readdir 成功(一直读取到目录的末尾),它将返回切片并返回一个零错误。如果在目录结束之前遇到错误,则 Readdir 将返回 FileInfo 读取直到该点,并出现非零错误。

func (*File) Readdirnames(显示源文件)

func (f *File) Readdirnames(n int) (names []string, err error)

Readdirnames 读取并返回目录f中的一段名称。

如果 n>0,Readdirnames 最多返回 n 个名称。在这种情况下,如果 Readdirnames 返回一个空片段,它将返回一个非零错误来解释原因。在目录结尾处,错误是 io.EOF 。

如果n <= 0,则 Readdirnames 将返回单个切片中目录中的所有名称。在这种情况下,如果 Readdirnames 成功(一直读到目录的末尾),它将返回切片并返回一个零错误。如果在目录结束之前遇到错误,则 Readdirnames 将返回直到该点时读取的名称以及非零错误。

func (*File) Seek(显示源文件)

func (f *File) Seek(offset int64, whence int) (ret int64, err error)

Seek 将下一个 Read 或 Write on 文件的偏移量设置为偏移量,根据此解释:0表示相对于文件原点,1表示相对于当前偏移量,2表示相对于结束。它返回新的偏移量和一个错误,如果有的话。未指定使用 O_APPEND 打开的文件上的 Seek 行为。

func (*File) Stat(显示源文件)

func (f *File) Stat() (FileInfo, error)

Stat 返回描述文件的 FileInfo 结构。如果有错误,它将是 * PathError 类型。

func (*File) Sync(显示源文件)

func (f *File) Sync() error

同步将文件的当前内容提交到稳定存储。通常,这意味着将文件系统的最近写入数据的内存副本清除到磁盘。

func (*File) Truncate(显示源文件)

func (f *File) Truncate(size int64) error

截断更改文件的大小。它不会更改 I/O 偏移量。如果有错误,它将是 * PathError 类型。

func (*File) Write(显示源文件)

func (f *File) Write(b []byte) (n int, err error)

写入 len(b) 字节到文件。它返回写入的字节数和错误(如果有的话)。当 n!= len(b) 时,Write 返回非零错误。

func (*File) WriteAt(显示源文件)

func (f *File) WriteAt(b []byte, off int64) (n int, err error)

WriteAt 将 len(b) 个字节写入从字节偏移 off 开始的 File 。它返回写入的字节数和错误(如果有的话)。当 n!= len(b) 时,WriteAt 返回一个非零错误。

func (*File) WriteString(显示源文件)

func (f *File) WriteString(s string) (n int, err error)

WriteString 就像 Write 一样,但是写入字符串s的内容而不是一个字节片段。

type FileInfo(显示源文件)

FileInfo 描述一个文件,并由 Stat 和 Lstat 返回。

type FileInfo interface { Name() string // base name of the file Size() int64 // length in bytes for regular files; system-dependent for others Mode() FileMode // file mode bits ModTime() time.Time // modification time IsDir() bool // abbreviation for Mode().IsDir() Sys() interface{} // underlying data source (can return nil) }

func Lstat(显示源文件)

func Lstat(name string) (FileInfo, error)

Lstat 返回一个描述指定文件的 FileInfo 。如果文件是符号链接,则返回的 FileInfo 描述符号链接。Lstat 不会尝试跟随链接。如果有错误,它将是 * PathError 类型。

func Stat(显示源文件)

func Stat(name string) (FileInfo, error)

Stat 返回一个描述指定文件的 FileInfo 。如果有错误,它将是 * PathError 类型。

type FileMode(显示源文件)

FileMode 表示文件的模式和权限位。这些位在所有系统上具有相同的定义,以便可以将有关文件的信息从一个系统移动到另一个系统。并非所有位都适用于所有系统。目录的唯一必需位是 ModeDir 。

type FileMode uint32

定义的文件模式位是FileMode的最高有效位。 九个最低有效位是标准的Unix rwxrwxrwx权限。 这些位的值应被视为公共API的一部分,并可用于有线协议或磁盘表示中:尽管可能会添加新位,但它们不得更改。

const ( // The single letters are the abbreviations // used by the String method's formatting. ModeDir FileMode = 1 << (32 - 1 - iota) // d: is a directory ModeAppend // a: append-only ModeExclusive // l: exclusive use ModeTemporary // T: temporary file; Plan 9 only ModeSymlink // L: symbolic link ModeDevice // D: device file ModeNamedPipe // p: named pipe (FIFO) ModeSocket // S: Unix domain socket ModeSetuid // u: setuid ModeSetgid // g: setgid ModeCharDevice // c: Unix character device, when ModeDevice is set ModeSticky // t: sticky // Mask for the type bits. For regular files, none will be set. ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice ModePerm FileMode = 0777 // Unix permission bits )

package main import ( "fmt" "log" "os" ) func main() { fi, err := os.Lstat("some-filename") if err != nil { log.Fatal(err) } switch mode := fi.Mode( { case mode.IsRegular(): fmt.Println("regular file") case mode.IsDir(): fmt.Println("directory") case mode&os.ModeSymlink != 0: fmt.Println("symbolic link") case mode&os.ModeNamedPipe != 0: fmt.Println("named pipe") } }

func (FileMode) IsDir(显示源文件)

func (m FileMode) IsDir() bool

IsDir 报告 m 是否描述目录。也就是说,它测试 ModeDir 位在 m 中设置。

func (FileMode) IsRegular(显示源文件)

func (m FileMode) IsRegular() bool

IsRegular 报告 m 是否描述常规文件。也就是说,它测试没有设置模式类型位。

func (FileMode) Perm(显示源文件)

func (m FileMode) Perm() FileMode

Perm 以 m 为单位返回 Unix 权限位。

func (FileMode) String(显示源文件)

func (m FileMode) String() string

type LinkError(显示源文件)

LinkError 在链接或符号链接期间记录错误或重命名系统调用以及导致它的路径。

type LinkError struct { Op string Old string New string Err error }

func (*LinkError) Error(显示源文件)

func (e *LinkError) Error() string

type PathError(显示源文件)

PathError 记录错误以及导致它的操作和文件路径。

type PathError struct { Op string Path string Err error }

func (*PathError) Error(显示源文件)

func (e *PathError) Error() string

type ProcAttr(显示源文件)

ProcAttr 保存将应用于由 StartProcess 启动的新进程的属性。

type ProcAttr struct { // If Dir is non-empty, the child changes into the directory before // creating the process. Dir string // If Env is non-nil, it gives the environment variables for the // new process in the form returned by Environ. // If it is nil, the result of Environ will be used. Env []string // Files specifies the open files inherited by the new process. The // first three entries correspond to standard input, standard output, and // standard error. An implementation may support additional entries, // depending on the underlying operating system. A nil entry corresponds // to that file being closed when the process starts. Files []*File // Operating system-specific process creation attributes. // Note that setting this field means that your program // may not execute properly or even compile on some // operating systems. Sys *syscall.SysProcAttr }

type Process(显示源文件)

进程存储有关由 StartProcess 创建的进程的信息。

type Process struct { Pid int // contains filtered or unexported fields }

func FindProcess(显示源文件)

func FindProcess(pid int) (*Process, error)

FindProcess 通过它的 pid 查找正在运行的进程。

它返回的进程可用于获取有关底层操作系统进程的信息。

在 Unix 系统上,无论过程是否存在,FindProcess 都会成功并为给定的 PID 返回一个 Process 。

func StartProcess(显示源文件)

func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error)

StartProcess 使用由 name ,argv 和 attr 指定的程序,参数和属性启动一个新进程。

StartProcess 是一个低级别的界面。os/exec 软件包提供更高级的接口。

如果有错误,它将是 * PathError 类型。

func (*Process) Kill(显示源文件)

func (p *Process) Kill() error

杀死导致进程立即退出。

func (*Process) Release(显示源文件)

func (p *Process) Release() error

释放将释放与进程 p 关联的任何资源,以便将来无法使用。只有等待时才需要调用 Release 。

func (*Process) Signal(显示源文件)

func (p *Process) Signal(sig Signal) error

信号向过程发送信号。未在Windows上发送中断。

func (*Process) Wait(显示源文件)

func (p *Process) Wait() (*ProcessState, error)

等待进程退出,然后返回描述其状态和错误(如果有的话)的 ProcessState 。等待释放与流程相关的任何资源。在大多数操作系统上,进程必须是当前进程的子进程,否则将返回错误。

type ProcessState(显示源文件)

ProcessState 存储有关由 Wait 报告的进程的信息。

type ProcessState struct { // contains filtered or unexported fields }

func (*ProcessState) Exited(显示源文件)

func (p *ProcessState) Exited() bool

已退出的报告是否已退出该程序。

func (*ProcessState) Pid(显示源文件)

func (p *ProcessState) Pid() int

Pid 返回退出进程的进程 ID 。

func (*ProcessState) String(显示源文件)

func (p *ProcessState) String() string

func (*ProcessState) Success(显示源文件)

func (p *ProcessState) Success() bool

成功报告程序是否成功退出,例如 Unix 上的退出状态为0。

func (*ProcessState) Sys(显示源文件)

func (p *ProcessState) Sys() interface{}

Sys 返回有关该过程的系统相关退出信息。将其转换为适当的基础类型,例如 Unix 上的 syscall.WaitStatus 以访问其内容。

func (*ProcessState) SysUsage(显示源文件)

func (p *ProcessState) SysUsage() interface{}

SysUsage 返回有关退出进程的系统相关资源使用信息。将其转换为适当的基础类型,例如 Unix 上的 * syscall.Rusage 以访问其内容。(在 Unix 上,* syscall.Rusage与getrusage(2)手册页中定义的 struct rusage 匹配。)

func (*ProcessState) SystemTime(显示源文件)

func (p *ProcessState) SystemTime() time.Duration

SystemTime 返回退出进程及其子进程的系统 CPU 时间。

func (*ProcessState) UserTime(显示源文件)

func (p *ProcessState) UserTime() time.Duration

UserTime 返回退出进程及其子进程的用户 CPU 时间。

type Signal(显示源文件)

信号表示操作系统信号。通常的底层实现是操作系统相关的:在 Unix 上是 syscall.Signal 。

type Signal interface { String() string Signal() // to distinguish from other Stringers }

唯一保证在所有系统上存在的信号值是中断(发送进程中断)和终止(强制进程退出)。

var ( Interrupt Signal = syscall.SIGINT Kill Signal = syscall.SIGKILL )

type SyscallError(显示源文件)

SyscallError 记录来自特定系统调用的错误。

type SyscallError struct { Syscall string Err error }

func (*SyscallError) Error(显示源文件)

func (e *SyscallError) Error() string