猿问

如何正确实例化 os.FileMode

我看过无数示例和教程,它们展示了如何通过设置文件的权限位来创建文件以及所有这些示例和教程。我想知道/找出如何在创建/更新文件期间正确实例化 os.FileMode 以提供给编写器。


一个粗略的例子如下:


func FileWrite(path string, r io.Reader, uid, gid int, perms string) (int64, error){

    w, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0664)

    if err != nil {

        if path == "" {

            w = os.Stdout

        } else {

            return 0, err

        }

    }

    defer w.Close()


    size, err := io.Copy(w, r)


    if err != nil {

        return 0, err

    }

    return size, err

}

在上面的基本功能中,设置了权限位 0664,尽管有时这可能有意义,但我更喜欢正确设置文件模式的正确方法。如上所示,一个常见的例子是 UID/GID 是已知的并且已经作为 int 值提供,而 perms 是以前收集并作为字符串插入到数据库中的八进制数字。


RISEBY
浏览 261回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答