"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > os.FileMode는 플래그를 설정하기 전에 권한을 어떻게 변환합니까?

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

2024년 11월 19일에 게시됨
검색:710

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"을 전달하면 올바른 권한이 부여됩니다. set.
  • os.FileMode에 "700"(0 없이 시작)을 전달하면 언어 사양이 숫자로 시작하기 때문에 자동으로 8진수로 해석하므로 올바른 권한이 설정됩니다.
  • "1274"("0700"의 10진수 표시)를 os.FileMode에 전달하면 잘못된 권한이 설정됩니다. 이는 언어 사양이 "1274"를 기본 10 숫자로 해석하기 때문입니다.

추가 참고

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

릴리스 선언문 이 기사는 1729743262에 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3