Я только что открыл один из своих старых проектов в Visual Studio (Windows), добавив проверку каталога, и обнаружил ошибку компиляции.
Я просто скопировал функцию из моего другого рабочего проекта и добавил те же заголовки.
Если вы нажмете F12, откроется stats.h, и вы получите идентификатор, но каким-то образом компилятор его не увидит?
#include <sys/types.h>
#include <sys/stat.h>
void my_function()
{
...
struct _stat buf;
_wstat(dir, &buf);
if ((buf.st_mode & _S_IFDIR) > 0) { // here _S_IFDIR undefined
...
}
}