Como os.FileMode converte permissões antes de definir sinalizadores
Preocupação original
Ao usar o os.FileMode com números octais ou decimais, as permissões de arquivo resultantes nem sempre parecem corresponder ao comportamento esperado. Especificamente, passar um número decimal (sem zero à esquerda) resulta em atributos de arquivo diferentes de passar o equivalente octal.
Lógica de conversão
os.FileMode aceita um número inteiro como entrada e representa-o internamente como um número inteiro não assinado de 32 bits. Os nove bits menos significativos correspondem às permissões de arquivo Unix, enquanto os 12 bits restantes não são utilizados. Ao converter um número octal em um inteiro, a especificação da linguagem interpreta o número como base 8 se começar com um zero à esquerda ("0"). Caso contrário, ele interpreta o número como base 10.
Exemplo
Considere o número octal "0700" que representa as permissões "rwx------".
Nota adicional
Os 12 bits não utilizados na representação os.FileMode indicam recursos especiais de arquivo. No entanto, estes não são relevantes para permissões básicas de arquivo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3