os标准库
os与操作系统无关,在所有系统都一样。
权限
在go中权限为perm 是一个uint32类型
一般采用0777;0代表8进制777为- rwx rwx rwx得来
os.Creat
创建一个name文件,其权限为0666即所有人都可以读写但不可以执行。
func Create(name string) (file *File,err error)
本质为OpenFile
*O_RDWR:*可读可写
*O_CREATE:*创建
*O_TRUNC:*清空
os.Mkdir
创建单个目录
需要指定权限。例如os.ModePerm代表0777
os.MkdirAll
创建多级目录
使用举例:
err := os.MkdirAll("ms/a/b",os.ModePerm)
os.Remove
删除一个空目录或单个文件
err := os.Remove("ms/a/b")
os.RemoveAll
删除目录及其中所有文件
err := os.Removell("ms")
os.Getwd
获取工作目录
func Getwd() (dir string, err error){}
dir,err:=os.Getwd()
os.Chdir
修改工作目录
func Chdir(dir string) error {}//dir 必须是一个文件
os.TempDir
获取临时目录
os.Rename
重命名文件/目录
err := os.Rename("ms","ms1")//ms可以是一个文件也可以是一个目录
os.Chmod
修改文件权限
os.Chowm
改变文件所有者
文件操作
打开模式
打开文件用到的函数
//创建一个空文件,当文件存在会被覆盖掉
func Create(name string) (file *File, err error)
//打开一个文件,只读不写
func Open(name string) (file *File, err error)
//以指定权限打开文件
func OpenFile(name string, flag int. perm FileMode)(file *File, err error)
//关闭文件
func (f *File) Close() error
文件读取
//获取文件信息,包括文件名称大小修改时间等
func (f *File) Stat()(fi FileInfo, err error)
//从文件一次性读b大小的数据,读到末尾返回EOFerr
func (f *File) Read(b []byte)(n int, err error)
//从文件指定位置(off)一次性读b大小的数据,读到末尾返回EOFerr
func (f *File) ReadAt(b []byte, off int64)(n int, err error)
//读取目录并返回排序好的文件和子目录名切片
func ReadDir(name string)([]DirEntry, error)
//设置下次读写的位置,offset为偏移量,whence决定相对位置
//0相对文件头,1相对当前位置,2相对文件尾,ret为新的偏移量(相对开头)
func (f *File) Seek(offset int64, whence int)(ret int64, error)
文件写
//向file中写入len(b)字节数据。返回写入字节数,若n!=len(b)返回一个非nil的err
func (f *File) Write(b []byte)(n int, err error)
//接收String的Write
func (f *File) WriteString(s string)(ret int, err error)
//从文件指定位置(相对于开始位置)写入len(b)大小的数据,若n!=len(b)返回一个非nil的err
func (f *File) WriteAt(b []byte, off int64)(n int, err error)
进程相关
重点只有
func Exit(code int)//o表示成功,非零表示出错