>  기사  >  백엔드 개발  >  Go에서 파일 생성 및 업데이트를 위해 `os.FileMode`를 어떻게 정확하게 인스턴스화합니까?

Go에서 파일 생성 및 업데이트를 위해 `os.FileMode`를 어떻게 정확하게 인스턴스화합니까?

DDD
DDD원래의
2024-11-11 05:13:02172검색

How do you accurately instantiate `os.FileMode` for file creation and updates in Go?

파일 생성 및 업데이트를 위한 os.FileMode 이해 및 인스턴스화

Go 프로그래밍에서 os.FileMode 유형은 파일 권한과 속성을 나타냅니다. 그러나 많은 예에서는 파일 생성 또는 수정을 위한 os.FileMode의 적절한 인스턴스화를 간과합니다. 이 문서에서는 os.FileMode를 정확하게 인스턴스화하는 방법을 살펴봅니다.

권한을 직접 설정하려면 권한 비트를 나타내는 상수를 정의하세요.

const (
    OS_READ = 04
    OS_WRITE = 02
    OS_EX = 01
    OS_USER_SHIFT = 6
    OS_GROUP_SHIFT = 3
    OS_OTH_SHIFT = 0

    OS_USER_R = OS_READ << OS_USER_SHIFT
    OS_USER_W = OS_WRITE << OS_USER_SHIFT
    OS_USER_X = OS_EX << OS_USER_SHIFT
    OS_USER_RW = OS_USER_R | OS_USER_W
    OS_USER_RWX = OS_USER_RW | OS_USER_X

    OS_GROUP_R = OS_READ << OS_GROUP_SHIFT
    OS_GROUP_W = OS_WRITE << OS_GROUP_SHIFT
    OS_GROUP_X = OS_EX << OS_GROUP_SHIFT
    OS_GROUP_RW = OS_GROUP_R | OS_GROUP_W
    OS_GROUP_RWX = OS_GROUP_RW | OS_GROUP_X

    OS_OTH_R = OS_READ << OS_OTH_SHIFT
    OS_OTH_W = OS_WRITE << OS_OTH_SHIFT
    OS_OTH_X = OS_EX << OS_OTH_SHIFT
    OS_OTH_RW = OS_OTH_R | OS_OTH_W
    OS_OTH_RWX = OS_OTH_RW | OS_OTH_X

    OS_ALL_R = OS_USER_R | OS_GROUP_R | OS_OTH_R
    OS_ALL_W = OS_USER_W | OS_GROUP_W | OS_OTH_W
    OS_ALL_X = OS_USER_X | OS_GROUP_X | OS_OTH_X
    OS_ALL_RW = OS_ALL_R | OS_ALL_W
    OS_ALL_RWX = OS_ALL_RW | OS_GROUP_X
)

이제 의도한 권한을 명시적으로 지정할 수 있습니다.

var dir_file_mode os.FileMode
dir_file_mode = os.ModeDir | (OS_USER_RWX | OS_ALL_R)
os.MkdirAll(dir_str, dir_file_mode)

위 내용은 Go에서 파일 생성 및 업데이트를 위해 `os.FileMode`를 어떻게 정확하게 인스턴스화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.