go操作系统接口
go-os 权限
- MkdirAll(path string, perm FileMode) error
path: 目录,类似mkdir -p
创建给定路径的目录。
perm:指定目录的掩码,例如 os.FileMode(0002) # 八进制 - RemoveAll(path string) error
path: 删除的目录,递归删除指定目录的子目录,类似rm -rf
- func Mkdir(name string, perm FileMode) error
创建指定目录,perm为目录掩码。 - func Chdir(dir string) erro
更改当前进程运行的目录,并对目录有效性进行检查。类似mv
- func Rename(oldpath, newpath string) error
文件或者目录移动,类似mv
go-os 文件和目录
- OpenFile(name string, flag int, perm FileMode) (File, error)
name: 打开的文件名
flg: 打开文件操作的方式:O_RDONLY,O_WRONLY,O_RDWR,O_APPEND,O_CREATE,O_EXCL,O_SYNC,O_TRUNC
perm: umask掩码,掩饰消去给定权限,如果目录权限为0777,掩码为0002,此时目录创建的文件权限为0775。
Open(name string) (File, error) <=> Open(name string) (File, error)
Create(name string) (File, error) <=> OpenFile(name, O_RDWR|O_CREATE|O_TRUNC, 0666) - func (f *File) Read(b []byte) (n int, err error)
从File中读取最大len(b)大小的数据;返回值n为实际读取的字节数。
当读取到 文件末尾 时返回值为0和io.EOF - func (f *File) ReadAt(b []byte, off int64) (n int, err error)
从File的开始开始偏移位置off处读取最大len(b)大小的数据。
返回值n为实际读取的字节数,当当读取到 文件末尾 时返回值为0和io.EOF - func (f *File) Write(b []byte) (n int, err error)
项文件中写入数据。 - func (f *File) WriteAt(b []byte, off int64) (n int, err error)
从File指定的开始位置的偏移off处开始写数据。
注意:通过O_APPEND方式打开的文件,调用WriteAt将报错。 - func (f *File) Seek(offset int64, whence int) (ret int64, err error)
offset: 移动的偏移量。
whence: 偏移量的起点,0: 文件起始位置;1: 当前读写位置;2: 文件末尾。 - func (f *File) WriteString(s string) (n int, err error)
=> f.Write([]byte(s)) - func (f *File) Readdir(n int) ([]FileInfo, error)
n: n>0 读取返回最多n文件描述信息;n<0读取全部文件信息。 - func (f *File) Readdirnames(n int) (names []string, err error)
通Readdir作用一样,只是返回的是文件名。
go-os 环境变量
func UserCacheDir() (string, error)
$XDG_CACHE_HOME
否则$HOME/.cache
func UserConfigDir() (string, error)
$XDG_CONFIG_HOME
否则$HOME/.config
func UserHomeDir() (string, error)
用户家目录路径func Chmod(name string, mode FileMode) error
修改文件或者目录权限func Stat(name string) (FileInfo, error)
返回文件的描述信息,返回FileInfo(接口)
// A FileInfo describes a file and is returned by Stat and 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 Hostname() (name string, err error)
返回主机名;/proc/sys/kernel/hostname
- ExpandEnv(s string) string
将s包含环境变量的字符串,扩展。例如HOME、$@等 - func Getenv(key string) string
获取环境变量对应的值 - func LookupEnv(key string) (string, bool)
根据给定的环境变量,获取对应的值。 - func Setenv(key, value string) error
- func Unsetenv(key string) error
- func Clearenv()
- func Environ() []string
获取环境变量,给个设置结构为key=val