英文:
create a directory with normal permission in go
问题
你可以使用os.Mkdir
方法创建一个具有普通权限(例如八进制表示法中的0700)的目录。要正确设置perm
值,你可以使用os.FileMode
类型来表示权限。在这种情况下,你可以使用os.FileMode(0700)
来设置权限值。下面是一个示例代码:
package main
import (
"fmt"
"os"
)
func main() {
err := os.Mkdir("mydir", os.FileMode(0700))
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Directory created successfully.")
}
这段代码将创建一个名为"mydir"的目录,并将其权限设置为0700。如果目录创建成功,将打印"Directory created successfully."。
英文:
How can I create a directory with normal permissions (say 0700 in octal notation) with the os.Mkdir
method. I did not manage to find how to set the perm
value correctly.
答案1
得分: 8
你可以直接使用八进制表示法:
os.Mkdir("dirname", 0700)
根据FileMode的文档:
最低有效的9位是标准的Unix rwxrwxrwx权限
模式位被定义为你可以像使用chmod一样使用正常的八进制表示法。然而,你必须在前面加上一个零来告诉Go它是一个八进制字面量。
另外,请记住,第四个数字在chmod中不存在。在chmod中,你可以使用1700来设置粘滞位。在Go中,你需要通过类似以下方式设置操作系统库中定义的位:0700 | os.ModeSticky
英文:
You can use that octal notation directly:
os.Mkdir("dirname", 0700)
From the documentation for FileMode:
>The nine least-significant bits are the standard Unix rwxrwxrwx permissions
The mode bits are defined so that you may use normal octal notation just as you would with chmod. However, you must prefix it with a zero to tell Go it is an octal literal.
Also, remember that the 4th number doesn't exist like it does in chmod. With chmod, you could do 1700 to set the sticky bit. In Go, you would need to set the bit defined in the OS lib by doing something like: 0700 | os.ModeSticky
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论