源码地址https://github.com/golang/go/blob/master/src/os/file_unix.go?name=release#76
文档解释https://studygolang.com/pkgdoc
func OpenFile
func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
OpenFile是一个更一般性的文件打开函数,大多数调用者都应用Open或Create代替本函数。它会使用指定的选项(如O_RDONLY等)、指定的模式(如0666等)打开指定名称的文件。如果操作成功,返回的文件对象可用于I/O。如果出错,错误底层类型是*PathError。
举例
os.OpenFile("./app.log", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0644)
app.log是文件名字,os.O_CREATE|os.O_RDWR|os.O_APPEND是设置flag位,分别表示:不存在就创建文件,赋予读写权限,新数据以追加的方式写入文件(即写入到最后一行)。
最后的0644表示指定的打开模式,如:
- 0777:-rwxrwxrwx,创建了一个普通文件,所有人拥有所有的读、写、执行权限
- 0666:-rw-rw-rw-,创建了一个普通文件,所有人拥有对该文件的读、写权限,但是都不可执行
- 0644:-rw-r--r--,创建了一个普通文件,文件所有者对该文件有读写权限,用户组和其他人只有读权限,没有执行权限
linux里ls -l 查看某文件夹权限
r表示读,数字4.
w表示写,数字2
x表示执行,数字1
权限一共10位,第一位‘d’表示文件夹还是文件
后面的九位,三位一组,第一组代表所有者(user)的权限,第二组代表所有者组(group)的权限,第三组代表其他人(other)的权限.
(chmod -R 777 一时爽)