Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que je reçois une erreur « Descripteur de fichier incorrect » dans ma routine de journalisation Go ?

Pourquoi est-ce que je reçois une erreur « Descripteur de fichier incorrect » dans ma routine de journalisation Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-23 10:44:11180parcourir

Why Am I Getting a

Correction du problème de « mauvais descripteur de fichier » dans la routine de journalisation Go

Lorsque vous rencontrez l'erreur « mauvais descripteur de fichier » lors de l'ajout à un fichier de journalisation dans une routine Go, il est important d’enquêter sur la cause sous-jacente. L'erreur suggère que le descripteur de fichier n'est pas valide ou inapproprié pour l'opération prévue.

Dans ce cas particulier, le problème vient du fait que l'on a négligé de spécifier l'indicateur approprié lors de l'ouverture du fichier journal. Par défaut, la fonction os.OpenFile de Go ouvre le fichier en mode lecture seule, d'où l'erreur "mauvais descripteur de fichier" lors de la tentative d'écriture dessus.

La solution réside dans l'ajout de l'indicateur O_WRONLY au système d'exploitation. Appel OpenFile. Cet indicateur indique que le fichier doit être ouvert en écriture, garantissant que le descripteur de fichier obtenu est valide pour les opérations d'écriture. Voici le code corrigé :

if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { /*[...]*/ }

En incorporant l'indicateur O_WRONLY, la routine Go peut ouvrir avec succès le fichier journal en écriture et ajouter des messages de journal sans rencontrer l'erreur « mauvais descripteur de fichier ».

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn