Maison > développement back-end > Golang > le corps du texte

Les fichiers Golang doivent-ils être fermés ?

青灯夜游
Libérer: 2023-01-04 09:12:33
original
3807 Les gens l'ont consulté

Le dossier Golang doit être fermé. Lorsque vous utilisez un fichier dans Golang, vous devez d'abord ouvrir le fichier. Une fois l'opération d'ouverture du fichier terminée, vous devez également fermer le fichier, car si vous ouvrez uniquement le fichier et ne le fermez pas, cela entraînera un gaspillage ; des ressources du système. Dans le langage Go, la fonction Close permet de fermer un fichier. La syntaxe est "func (file *File) Close() error". Le paramètre "file" représente le fichier ouvert, si l'ouverture échoue, un message d'erreur est affiché. retourné, sinon nul est retourné.

Les fichiers Golang doivent-ils être fermés ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Ouverture et fermeture de fichiers dans Golang

Lorsque nous exploitons des fichiers dans Golang, nous devons d'abord ouvrir le fichier Une fois l'opération d'ouverture du fichier terminée, nous devons également fermer le fichier si nous ouvrons uniquement le fichier et. ne fermez pas le fichier, cela entraînerait un gaspillage de ressources système.

Pour ouvrir un fichier dans Golang, utilisez la fonction Ouvrir, et pour fermer un fichier, utilisez la fonction Fermer. Ouvrir un fichier, fermer un fichier et la plupart des opérations sur les fichiers impliquent une structure très importante, la structure os.File.

1.1 Structure os.File

type File struct {
	*file // os specific
}
type file struct {
	pfd        poll.FD
	name       string
	dirinfo    *dirInfo // nil unless directory being read
	appendMode bool     // whether file is opened for appending
}
Copier après la connexion

Description :
Ici, vous pouvez voir que la structure os.File contient un pointeur de fichier. La structure du pointeur de fichier comporte quatre membres, qui sont :

  • pfd : Il s'agit d'un type de structure FD et constitue l'identifiant unique d'un fichier. Chaque fichier ouvert aura un identifiant de fichier dans le système d'exploitation pour identifier de manière unique un fichier, qui est le pfd.
  • nom ici : Nom du fichier
  • dirinfo : Le informations sur le chemin du fichier, également une structure
  • appendMode : C'est un type bool, indiquant si le fichier peut être ajouté au contenu

1.2 Fonction Open

Syntaxe :

func Open(name string) (*File, error)
Copier après la connexion

Paramètres :

  • name : Nom du fichier

Valeur de retour :

  • Fichier : Descripteur de fichier ouvert
  • err : Si l'ouverture échoue, renvoie un message d'erreur, sinon renvoie nil

Explication

La fonction Open accepte un nom de fichier chaîne comme paramètre Si l'ouverture réussit, elle renvoie un pointeur vers la structure File, sinon elle renvoie un message d'erreur.

1.3 Fonction de fermeture

Syntaxe :

func (file *File) Close() error
Copier après la connexion

Paramètres :

  • fichier : Ouvrir le fichier

Valeur de retour

  • erreur : Retour si l'ouverture échoue Erreur message, sinon nul est renvoyé

Explication :

  • Utilisez le pointeur File pour appeler la fonction Close. Si la fermeture échoue, un message d'erreur est renvoyé.

1.4 Exemple de description

Utilisez la fonction Ouvrir pour ouvrir le fichier et la fonction Fermer pour fermer le fichier :

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("Open File Test")
	fileName := "D:/go项目/test.go"
	file, err := os.Open(fileName)
	if err != nil {
		fmt.Println("Open file err:", err)
		return
	}
	fmt.Println("Open File Sucess")
	if err := file.Close(); err != nil {
		fmt.Println("Close File Err:", err)
		return
	}
	fmt.Println("Close File Success")
}
Copier après la connexion

[Recommandations associées : Tutoriel vidéo Go, Enseignement de la programmation]

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal