Я хотел бы быстро проверить, можно ли открыть файл. Он должен быть написан на переносимом C или, по крайней мере, для работы в системах Win32 и POSIX. #ifdef допустимы.
Я пытаюсь избежать этого:
int openable(const char*filename) {
FILE *f = fopen(filename,"r");
if (!f)
return 0; /* openable */
fclose(f);
return 1; /* not openable */
}
Из того, что я могу сказать, stat() в своей простейшей форме можно использовать для проверки существования файла, но не для проверки того, действительно ли он открывается.