ホームページ > バックエンド開発 > Golang > Go で読み取る前に空のファイルを安全に作成するにはどうすればよいですか?

Go で読み取る前に空のファイルを安全に作成するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-04 18:40:12
オリジナル
209 人が閲覧しました

How to Safely Create an Empty File Before Reading in Go?

ファイルを安全に読み取るための空のテキスト ファイルの作成

ファイルを操作するときに、存在しないファイルが見つかると、予期しないエラーが発生する可能性があります。これを防ぐために、ファイルの存在を確認し、必要に応じて空のファイルを作成する関数を作成できます。その方法は次のとおりです:

まず、ファイルが存在するかどうかを確認する関数を定義しましょう:

func exists(path string) (bool, error) {
    _, err := os.Stat(path)
    if err == nil {
        return true, nil
    }
    if os.IsNotExist(err) {
        return false, nil
    }
    return true, err
}
ログイン後にコピー

ただし、このアプローチには競合状態が発生します。ファイルが同時に作成される場合、そのチェックで false が返され、誤った動作が発生する可能性があります。

この問題を解決するには、最初に存在をチェックするのではなく、O_CREATE フラグを指定して os.OpenFile() を使用します。

func createEmptyFile(path string) (*os.File, error) {
    return os.OpenFile(path, os.O_RDONLY|os.O_CREATE, 0666)
}
ログイン後にコピー

これで、createEmptyFile() を呼び出すと、ファイルが存在しない場合にはファイルが作成され、ファイルの安全な読み取りが保証されます。

以上がGo で読み取る前に空のファイルを安全に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート