ホームページ  >  記事  >  バックエンド開発  >  Go でファイルのハードリンク数を取得する方法

Go でファイルのハードリンク数を取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 17:04:03396ブラウズ

How to Retrieve a File's Hard Link Count in Go?

Go でのファイルのハード リンク数へのアクセス

質問:

FileInfo の Go 実装ファイルのプロパティに関する広範な情報を提供します。ただし、ファイルを指すハード リンクの数は含まれません。 Go 標準ライブラリを使用してこの情報を取得するにはどうすればよいですか?

答え:

ファイルへのハード リンクの数は、stat 構造体の st_nlink フィールドに格納されます。 で定義されています。 Go でこの情報にアクセスするには、FileInfo の Sys フィールドに保存されている基になるシステム固有のデータを取得する必要があります。

この例では、Linux システム上のハード リンク数を取得する方法を示します。

<code class="go">package main

import (
    "fmt"
    "os"
    "syscall"
)

func main() {
    fi, err := os.Stat("filename")
    if err != nil {
        fmt.Println(err)
        return
    }

    var nlink uint64

    // Retrieve the system-specific data
    if sys := fi.Sys(); sys != nil {
        // Cast the system-specific data to a *syscall.Stat_t
        if stat, ok := sys.(*syscall.Stat_t); ok {
            nlink = uint64(stat.Nlink)
        }
    }

    fmt.Println(nlink)
}</code>

以上がGo でファイルのハードリンク数を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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