Go でファイルを操作する場合、特定のファイルに関連付けられたハード リンクの数を取得する必要がある場合があります。ハード リンクは、別の物理コピーを作成せずに同じファイルにアクセスするための代替方法を提供します。
Go の組み込み os.Stat 関数は、ファイル名などのファイルに関するさまざまな情報を提供する FileInfo インターフェイスを返します。サイズ、モード、変更時間。ただし、FileInfo インターフェイスでは、ハード リンクの数に直接アクセスできません。
ハード リンクの数を取得するには、FileInfo の Sys フィールドからアクセスできる、基礎となるシステム固有の情報を使用できます。 Linux システムの場合、このデータは syscall.Stat_t 構造体に保存されます。この構造体の Nlink フィールドは、ファイルへのハード リンクの数を表します。
Go でハード リンクの数を取得する方法の例を次に示します。
<code class="go">package main import ( "fmt" "os" "syscall" ) func main() { fi, err := os.Stat("filename") if err != nil { fmt.Println(err) return } nlink := uint64(0) if sys := fi.Sys(); sys != nil { if stat, ok := sys.(*syscall.Stat_t); ok { nlink = uint64(stat.Nlink) } } fmt.Println(nlink) }</code>
このコードを実行すると、ファイル名をハードリンク ファイルとして指定すると、それに関連付けられたハード リンクの数が出力されます。
Sys フィールドのシステム固有の情報を使用すると、ハード リンクの数を含む、ファイルに関するより詳細な情報にアクセスできます。 、さまざまなファイル管理タスクに役立ちます。
以上がGoでファイルのハードリンクの数を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。