go 函数os.OpenFile

转载  go 函数os.OpenFile_dodod2012的博客-CSDN博客_go os.openfile

go 系统函数os.OpenFile

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

特简单,传入路径,flag,已经权限就打开了。

在使用中发现大家的调用方式常用

os.OpenFile("./app.log", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0644)

这个0644是什么鬼?在go源码里枚举也没这些定义呀,猜测应该是某些权限的集合。

要是0777倒好理解了,因为unix就有个chmod +777

后来查了好多资料终于算是理解了。

0表示8进制。

644表示权限,要知道什么权限可以调用

aaa := os.FileMode(0777).String()

来获取,结果是-rwxrwxrwx

-表示普通文件

r表示可读

w表示可写

x表示可执行

然后各个位置表示对应的用户权限,可以参考下面这段东西

一般都文件属性标识如下: 

-rwxrwxrwx

第1位:文件属性,一般常用的是"-",表示是普通文件;"d"表示是一个目录。

第2~4位:文件所有者的权限rwx (可读/可写/可执行)。

第5~7位:文件所属用户组的权限rwx (可读/可写/可执行)。

第8~10位:其他人的权限rwx (可读/可写/可执行)。

在golang中,可以使用os.FileMode(perm).String()来查看权限标识:

os.FileMode(0777).String() //返回 -rwxrwxrwx

os.FileMode(0666).String() //返回 -rw-rw-rw-

os.FileMode(0644).String() //返回 -rw-r--r--

0777表示:创建了一个普通文件,所有人拥有所有的读、写、执行权限

0666表示:创建了一个普通文件,所有人拥有对该文件的读、写权限,但是都不可执行

0644表示:创建了一个普通文件,文件所有者对该文件有读写权限,用户组和其他人只有读权限,

都没有执行权限

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值