C ++ stat.h неполный тип и не может быть определен

У меня очень странная проблема со stat.h

В верхней части моего кода есть объявления:

#include  
#include  

И функция prototype:

int FileSize(string szFileName);

Наконец, сама функция определяется следующим образом:

int FileSize(string szFileName)
{
  struct stat fileStat; 
  int err = stat( szFileName.c_str(), &fileStat ); 
  if (0 != err) return 0; 
  return fileStat.st_size;
}

Когда я пытаюсь скомпилировать этот код, я получаю сообщение об ошибке:

divide.cpp: In function 'int FileSize(std::string)':
divide.cpp:216: error: aggregate 'stat fileStat' has incomplete type and cannot be defined
divide.cpp:217: error: invalid use of incomplete type 'struct stat'
divide.cpp:216: error: forward declaration of 'struct stat'

Из этого потока: Как я могу получить размер файла в C ? Я думаю, что этот код должен работать, и я не могу понять, почему он не компилируется. Может ли кто-нибудь заметить, что я делаю неправильно?

6
задан Community 23 May 2017 в 12:15
поделиться