GO语言中的os包作用总结(建议牢记)

Go语言的os包提供了与操作系统交互的功能。以下是os包的主要用法总结:

文件操作

(建议记住)
Open(name string) (*File, error): 打开文件只读。
OpenFile(name string, flag int, perm FileMode):按照模式打开文件
Create(name string) (*File, error): 创建新文件或截断现有文件。
Remove(name string) error: 删除文件或空目录。
Rename(oldpath, newpath string) error: 重命名文件或目录。
Stat(name string) (FileInfo, error): 获取文件信息。

OpenFile()对应的flag(记住)有:

// Exactly one of O_RDONLY, O_WRONLY, or O_RDWR must be specified.
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.
// The remaining values may be or'ed in to control behavior.
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  // truncate regular writable file when opened.

解释(了解即可)
OpenFile()中的参数 perm FileMode:对应的文件的权限设置。常用的是0644
权限模式的详细解释

权限模式0644由四个数字组成:

前导的0表示这是一个八进制数。
第一个数字6表示所有者的权限。
第二个数字4表示组的权限。
第三个数字4表示其他用户的权限。
每个数字代表以下权限:

4(读权限 r):对应二进制的100。
2(写权限 w):对应二进制的010。
1(执行权限 x):对应二进制的001。
通过将这些权限组合,我们可以得到一个八进制数:

6 = 4(读) + 2(写) = 110(二进制)。
4 = 4(读) = 100(二进制)。
权限模式0644的具体含义

所有者权限:6 = 4(读) + 2(写) = rw-(读写)。
组权限:4 = 4(读) = r--(只读)。
其他用户权限:4 = 4(读) = r--(只读)。
因此,权限模式0644表示:

所有者可以读取和写入该文件,但不能执行。
组成员可以读取该文件,但不能写入或执行。
其他用户可以读取该文件,但不能写入或执行。


补充Stat()返回的一个FileInfo接口:

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() any           // underlying data source (can return nil)
}


目录操作

Mkdir(name string, perm FileMode) error: 创建目录。
MkdirAll(path string, perm FileMode) error: 递归创建目录。
RemoveAll(path string) error: 递归删除路径及其内容。


文件读写

(*File).Read(b []byte) (n int, err error): 读取文件。
(*File).Write(b []byte) (n int, err error): 写入文件。
(*File).Close() error: 关闭文件。
(*File).Seek(offset int64, whence int) (ret int64, err error): 设置文件读取位置。


环境变量

Getenv(key string) string: 获取环境变量。
Setenv(key, value string) error: 设置环境变量。
Unsetenv(key string) error: 删除环境变量。
Environ() []string: 获取所有环境变量。


进程操作

Exit(code int): 退出当前进程。
StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error): 启动新进程。
FindProcess(pid int) (*Process, error): 查找进程。


错误处理

常见错误变量:ErrNotExist, ErrExist, ErrPermission。


标准流

Stdin, Stdout, Stderr: 标准输入、输出、错误流。使用例如:os.Stdin

os包通过这些函数和方法提供了文件系统操作、环境变量管理和进程控制等基本操作功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值