Ошибка ‘access’ не была объявлена в этой области при компиляции c

#c #g

#c #g

Вопрос:

Я загрузил этот код на github, но у меня возникает эта ошибка в make строке файла util.cpp 212. В нем говорится

ошибка: ‘доступ’ не был объявлен в этой области

int ret = access(tmppath, 0); //amp;s);

Часть кода:

 #ifndef WIN32
int yatc_makedirs(const char* path, int mode)
{
    char* tmppath = (char*)malloc(strlen(path) 1);
    for(const char* c = path; *c; c  )
    {
    if(*c=='/' amp;amp; c-path > 0)
    {
        memcpy(tmppath,path,c-path);
        tmppath[c-path]=0;
        struct stat s;
        int ret = access(tmppath, 0); //amp;s);
        if(ret)
        {
            int mdret;
            if((mdret=mkdir(tmppath, mode)))
            {
                free(tmppath);
                return mdret;
            }
        }
    }
}
free(tmppath);
return 0;
}
#endif
 

Включает в себя:

 #include <sstream>
#include <string>
#include <vector>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#ifndef WIN32
#include <sys/stat.h> // mkdir
#include <errno.h>
#endif
#include "util.h"

#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <shellapi.h> // needed for ShellExecute
#endif

#include "macutil.h"
#include "product.h"


#define WINCE_INSTALLDIR "/Storage Card/YATC/"
 

Я не нашел документации об этой функции «access», я пропустил некоторые включения здесь? g Команда (на терминале Linux) была:

g -DHAVE_CONFIG_H -I. -DDEBUGLEVEL_BUILDTIME=0 -DUSE_OPENGL -DDESTDIRS=»/usr/local:/usr/local/share/:/usr/local/share/:/usr/local/share/yatc-data/:/usr/local/share/yatc-data/:/usr/local/share/tibia/:/usr/local/share/tibia/» -Wall -g -O2 -MT util.o -MD -MP -MF .deps/util.Tpo -c -o util.o util.cpp

Комментарии:

1. access() предоставляется из <unistd.h> , чего я нигде не вижу в ваших списках включения.

2. На случай, если вы пытаетесь сделать это в Windows (похоже, что код может это сделать), access вводится с io.h помощью . Удачи.