Comment os.FileMode convertit les autorisations avant de définir des indicateurs
Problème d'origine
Lors de l'utilisation de os.FileMode avec des nombres octaux ou décimaux, les autorisations de fichiers résultantes ne semblent pas toujours correspondre au comportement attendu. Plus précisément, la transmission d'un nombre décimal (sans zéro en tête) entraîne des attributs de fichier différents de la transmission de l'équivalent octal.
Logique de conversion
os.FileMode accepte un nombre entier en entrée. et le représente en interne sous la forme d'un entier non signé de 32 bits. Les neuf bits les moins significatifs correspondent aux autorisations des fichiers Unix, tandis que les 12 bits restants sont inutilisés. Lors de la conversion d'un nombre octal en nombre entier, la spécification du langage interprète le nombre en base 8 s'il commence par un zéro non significatif ("0"). Sinon, il interprète le nombre en base 10.
Exemple
Considérez le nombre octal "0700" qui représente les autorisations "rwx------".
Remarque supplémentaire
Les 12 bits inutilisés dans la représentation os.FileMode indiquent fonctionnalités de fichiers spéciales. Cependant, celles-ci ne sont pas pertinentes pour les autorisations de base sur les fichiers.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3