2

この質問は、C でファイルのサイズを取得するにはどうすればよいですか? に関連しています。

関数 stat を使用してファイルの長さを取得することを示唆するほとんどの回答には、エラーチェックを行うためのタグも付いています。

ここでは、どのようなエラー チェックが必要でしょうか。

ありがとう。

4

2 に答える 2

3

多くの Unix/POSIX API 関数と同様stat(2)に、失敗すると負の整数を返します。残念ながら、この整数は stat に対して常に -1 です。errnoしたがって、グローバル変数( で定義<errno.h>) をチェックして、正確なエラーの内容を確認する必要があります。

Ben は、あなたが遭遇する可能性のあるエラーのいくつかを挙げています。これらおよびその他のエラーの errno コードは、stat マンページにリストされています。

于 2011-07-03T04:30:56.227 に答える
2
  • ファイルが存在しない可能性があります
  • そのメタデータにアクセスする権限がない可能性があります
  • ネットワーク マウント ポイントに到達できないか、その他の読み取りエラーが発生している可能性があります
  • サイズのない特殊なファイル (たとえば、デバイス ノード、または fifo) である可能性があります。
于 2011-07-03T04:27:43.533 に答える