ファイルシステムを検索してディレクトリ、通常のファイル、シンボリックリンクを検索するために、Cで学校の課題を書いています。今のところ、lstat
を使用してアイテムに関する情報を取得します。
では、lstat
fstat
とstat
システムコールの違いは何ですか?
私は_stat vs lstat vs fstat
_も検索していましたが、この質問に対する回答はすでにありますが、次のような形式にしたいのですが。
lstat()
はstat()
と同じですが、pathnameがシンボリックリンクの場合、参照するファイルではなく、リンク自体に関する情報を返します。
fstat()
は、情報が取得されるファイルがファイル記述子fdによって指定されることを除いて、stat()
と同じです。
類似性:どちらも引数としてファイル名を取ります。
相違点:ファイル名がシンボリックリンクである場合は常に、stat()はリンクに関連付けられているターゲットファイルに関する属性またはiノード情報を返します。一方、lstat()はリンクのみの属性を返します。
Stat()とlstat()のマンページを参照してください。
次のグーグル:lstat v fstat v stat
提供される最初のリンクは、これらの違いを説明するmanページです: http://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html
ページにリストされているのは、次の簡単な答えです。stat()は、パスが指すファイルを統計し、bufに入力します。 lstat()はstat()と同じですが、pathがシンボリックリンクの場合、参照するファイルではなく、リンク自体が統計されます。 fstat()はstat()と同じですが、統計されるファイルがファイル記述子fdによって指定される点が異なります。