機密ファイルを扱うときに競合やデータ破損を防ぐには、排他的ファイル アクセスを維持することが重要です。 。 .NET では、FileAccess.ReadWrite フラグと FileShare.None フラグにより、ファイルへの排他的な読み取りおよび書き込みアクセスが提供されます。 Go で同様の機能を実現するにはどうすればよいですか?
さまざまなドキュメントを調査した結果、この目的に適した Go パッケージが見つかりました。
https://github.com/juju/fslock
このパッケージを使用すると、ファイル ロックに基づいてファイルをクロスプロセス ロックできます。その実装を見てみましょう:
fslock の基本的な使用例を次に示します。
package main import ( "fmt" "time" "github.com/juju/fslock" ) func main() { lock := fslock.New("../lock.txt") lockErr := lock.TryLock() if lockErr != nil { fmt.Println("Failed to acquire lock:", lockErr) return } fmt.Println("Acquired the lock") time.Sleep(1 * time.Minute) lock.Unlock() }
fslock パッケージは、Go で排他的ファイル ロックを取得および解放するための便利で移植可能なソリューションを提供します。これにより、他のプロセスからの干渉を受けることなく、ファイルを安全に読み書きできることが保証されます。
以上がデータ破損を防ぐために Go で排他的なファイル アクセスを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。