4

での関数の使用に関する私の質問struct。R.Stevens の本からスニペットを取りましたが、似たようなスニペットを数回見ました。CとLinuxの経験を積むことをお勧めしますが、この場合、構造体を正しい方法で使用する方法が本当にわかりません。

struct stat buf; // The error line              

for (i=1; i < argc; i++){        
  if (lstat(argv[i], &buf) < 0) { // Usage of
    err_ret("lstat error");      
    continue;                    
  }                              
  if (S_ISERG(buf.st_mode))      
    ptr = "regular";             

コードをコンパイルすると、エラーが発生しました。

type.c: In function ‘main’:
type.c:9:15: error: storage size of ‘buf’ isn’t known

構造体宣言の何が問題になっていますか? 構造体のサイズを明示的に宣言する必要がありますか? もしそうなら、どうすればそれを知ることができますか? そして主な質問 - それはどのように機能しstruct method nameますか?

4

1 に答える 1

8

以下を含めるのを忘れました:

   #include <sys/types.h>
   #include <sys/stat.h>
于 2013-05-26T16:40:34.743 に答える