Maison > Article > développement back-end > Comment corriger l'erreur « Mauvais descripteur de fichier » lors de l'ajout au fichier de journalisation dans Golang ?
Golang : résolution de l'erreur « Descripteur de fichier incorrect » lors de l'ajout au fichier de journalisation
Lors de la tentative d'ajout à un fichier de journalisation dans une routine Go , certains développeurs rencontrent une erreur « mauvais descripteur de fichier ». Même si le fichier existe et dispose des autorisations appropriées, le problème persiste.
Analyse et solution
Une enquête plus approfondie révèle que l'erreur est due à l'absence de l'indicateur O_WRONLY. dans l'appel de fonction OpenFile. Par défaut, le descripteur de fichier obtenu est en lecture seule.
Pour remédier à ce problème, ajoutez l'indicateur O_WRONLY à l'appel de la fonction os.OpenFile. Voici le code corrigé :
if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { /*[...]*/ }
Comme documenté dans la page de manuel de la fonction ouverte Linux, l'un des modes d'accès suivants doit être spécifié : O_RDONLY, O_WRONLY ou O_RDWR. Ces indicateurs indiquent respectivement un accès en lecture seule, en écriture seule ou en lecture/écriture. Dans ce cas, l'utilisation de O_APPEND seul entraîne un descripteur de fichier en lecture seule, conduisant à l'erreur. L'ajout de l'indicateur O_WRONLY garantit un descripteur de fichier en écriture seule.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!