ホームページ  >  記事  >  バックエンド開発  >  golang ファイルは閉じるべきでしょうか?

golang ファイルは閉じるべきでしょうか?

青灯夜游
青灯夜游オリジナル
2023-01-03 11:52:023817ブラウズ

golang ファイルを閉じる必要があります。 Golangでファイルを操作する場合、まずファイルを開く必要がありますが、ファイルを開く操作が完了したら、ファイルを閉じるだけでファイルを閉じないと無駄が発生するため、ファイルを閉じる必要があります。システムリソースの。 Go 言語では、Close 関数を使用してファイルを閉じます。構文は「func (file *File) Close() error」です。パラメータ「file」は開いているファイルを表します。開くのに失敗した場合は、次のようなエラー メッセージが表示されます。それ以外の場合は nil が返されます。

golang ファイルは閉じるべきでしょうか?

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Golang によるファイルのオープンとクローズ

Golang でファイルを操作するときは、まずファイルを開く必要があります。ファイルを開く操作が完了した後も、ファイルを開くだけの場合、ファイルを閉じないとシステム リソースが無駄に消費されます。

Golang でファイルを開くには、Open 関数を使用し、ファイルを閉じるには、Close 関数を使用します。ファイルを開く、ファイルを閉じる、およびほとんどのファイル操作には、非常に重要な構造である OS が関係します。ファイル構造。

1.1 os.ファイル構造

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
}

説明:
ここで os.ファイル構造を確認できます。ボディにはファイル ポインタが含まれています。ファイル ポインタ構造体には次の 4 つのメンバーがあります:

  • pfd: これは FD 構造体タイプであり、ファイルの唯一の識別子です。それぞれが開かれます。オペレーティング システムでは、ファイルにはファイルを一意に識別するためのファイル識別子があり、これは pfd です。
  • ここでの名前: ファイル名
  • dirinfo: ファイルのパス情報。構造体 Body
  • appendMode: bool 型で、ファイルをコンテンツに追加できるかどうかを示します

1.2 関数を開く

構文:

func Open(name string) (*File, error)

パラメータ:

  • name: ファイル名

戻り値:

  • File: 開かれたファイルハンドル
  • err: 開くことが失敗した場合はエラーメッセージが返され、それ以外の場合は nil が返されます

説明

Open 関数は文字列ファイル名をパラメータとして受け入れます。開くことが成功した場合はファイル構造へのポインタを返し、それ以外の場合はファイル構造体へのポインタを返します。エラーメッセージ。

1.3 関数を閉じる

構文:

func (file *File) Close() error

パラメータ:

  • ファイル: ファイルを開く

戻り値

  • エラー:開くことが失敗した場合はエラー メッセージを返し、それ以外の場合は nil を返します

説明:

  • ファイル ポインタを使用して Close 関数を呼び出します。閉じるのに失敗すると、エラー メッセージが返されます。

1.4 例の説明

Open 関数を使用してファイルを開き、Close 関数を使用してファイルを閉じます。

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")
}

[関連する推奨事項: Go ビデオ チュートリアルプログラミング教育]

以上がgolang ファイルは閉じるべきでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。