chenyahui / chenyahui.github.io

My blog
http://www.cyhone.com
0 stars 2 forks source link

os.Chmod 时到底用 777 还是 0777? | 编程沉思录 #62

Open chenyahui opened 3 years ago

chenyahui commented 3 years ago

https://www.cyhone.com/articles/0777-or-777/

问题是这样的:我在代码里面调用了 os.Chmod("test.txt", 777),希望把该文件的读写及执行权限对所有用户开放。执行完代码,顺手 ls 看了下。如下: $ ls -l test.txt -r----x--x 1 cyhone 1085706827 0 Jun 20 13:27 test.txt 结果出乎意料,不仅文件权限没有按预期的变成 rwxrwxrw

WTIFS commented 2 years ago

试了下还真是,它底层执行了 m & 0777 的逻辑,go 里面 0 开头的常量表示八进制数字,所以和掩码与操作时也被视为八进制了

chenyahui commented 2 years ago

@WTIFS 试了下还真是,它底层执行了 m & 0777 的逻辑,go 里面 0 开头的常量表示八进制数字,所以和掩码与操作时也被视为八进制了

是的~