2015-10-01 44 views
6

Cで学校の割り当てを書いて、ディレクトリ、正規ファイル、シンボリックリンクのファイルシステムを検索しています。今のところ私はlstatを使ってアイテムに関する情報を取得しています。Cのlstat fstatとstatの違い

lstatfstatstatシステムコールの違いは何ですか?

+5

[マニュアル](http://man7.org/linux/man-pages/man2/stat.2.html)とまったく同じです。 –

+2

あなたの質問に答える前に、少なくとも努力を払わなければなりません。 – KevinDTimm

+2

RTFMに挑戦してください。 – alk

答えて

31

私もstat vs lstat vs fstatを探していたし、すでにこの質問への答えがあるが、私はそれがそのようにフォーマットしてもらいたい:

lstat()はパス名がある場合ことを除いて、stat()と同じですシンボリック リンクをクリックすると、それが参照するファイル ではなく、リンク自体に関する情報が返されます。

fstat()は 情報を取得するどのファイルがファイル記述子 fdで指定されていることを除いて、stat()と同一です。

http://man7.org/linux/man-pages/man2/stat.2.html

1

次グーグル:設けられた第一のリンクはこれらの違いを説明manページでのV FSTATのVスタットLSTAT

を:ページに記載されているhttp://manpages.ubuntu.com/manpages/hardy/man2/stat.2.html

には、以下の単純な答えです: のstat()の統計pathが指すファイルはbufを埋めます。 lstat()はstat()と同じですが、pathがシンボリックリンクである場合、リンク自体は参照されるファイルではなくstat-edである点が異なります。 fstat()はstat()と同じですが、ファイル記述子fdによってstat-edファイルが指定されている点が異なります。

0

類似性:彼らの両方が、引数としてファイル名を取ります。

差分:ファイル名がシンボリックリンクの場合、stat()はリンクに関連付けられたターゲットファイルに関する属性またはinode情報を返します。一方、lstat()はリンクの属性のみを返します。

stat()とlstat()のマンページを参照してください。

関連する問題