>  기사  >  백엔드 개발  >  os.FileMode는 플래그를 설정하기 전에 권한을 어떻게 변환합니까?

os.FileMode는 플래그를 설정하기 전에 권한을 어떻게 변환합니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-25 04:54:02304검색

How Does os.FileMode Convert Permissions Before Setting Flags?

플래그를 설정하기 전에 os.FileMode가 권한을 변환하는 방법

원래 우려 사항

os.FileMode 함수를 8진수 또는 10진수로 사용하면 결과 파일 권한이 항상 예상 동작과 일치하지 않는 것 같습니다. 특히 10진수(앞에 0이 없음)를 전달하면 8진수를 전달하는 것과 파일 속성이 달라집니다.

변환 논리

os.FileMode는 정수를 입력으로 허용합니다. 내부적으로는 이를 32비트 부호 없는 정수로 나타냅니다. 최하위 9비트는 Unix 파일 권한에 해당하고 나머지 12비트는 사용되지 않습니다. 8진수를 정수로 변환할 때 언어 사양에서는 숫자가 앞에 0("0")으로 시작하는 경우 숫자를 기본 8로 해석합니다. 그렇지 않으면 숫자를 10진수로 해석합니다.

권한 "rwx------"을 나타내는 8진수 "0700"을 생각해 보세요.

  • os.FileMode에 "0700"을 전달하면 올바른 권한이 설정됩니다.
  • os.FileMode에 "700"(앞에 0이 없음)을 전달하면 언어 사양은 숫자로 시작하므로 자동으로 8진수로 해석하므로 올바른 권한이 설정됩니다.
  • "1274"("0700"의 10진수 표현)를 os.FileMode에 전달하면 잘못된 권한이 발생합니다. 세트. 이는 언어 사양이 "1274"를 기본 10 숫자로 해석하기 때문입니다.

추가 참고

os.FileMode 표현에서 사용되지 않은 12비트는 다음을 나타냅니다. 특수 파일 기능. 그러나 이는 기본 파일 권한과 관련이 없습니다.

위 내용은 os.FileMode는 플래그를 설정하기 전에 권한을 어떻게 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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