В настоящее время я использую этот код, чтобы проверить, существует ли файл на Windows
и POSIX
-совместимых операционных системах (Linux, Android, MacOS, iOS, BlackBerry 10):
bool FileExist( const std::string& Name )
{
#ifdef OS_WINDOWS
struct _stat buf;
int Result = _stat( Name.c_str(), &buf );
#else
struct stat buf;
int Result = stat( Name.c_str(), &buf );
#endif
return Result == 0;
}
Вопросы:
-
Есть ли у этого кода какие-то подводные камни? (возможно, ОС, где он не может быть скомпилирован)
-
Возможно ли это сделать по-настоящему портативно, используя только стандартную библиотеку C/С++?
-
Как его улучшить? Ищите канонический пример.