Goでファイルのハードリンクの数を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-30 11:20:27
オリジナル
906 人が閲覧しました

How to Get the Number of Hard Links for a File in Go?

Go でのハード リンクの数の取得

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!