#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>
int rc;
struct stat mystat;
rc = stat(path, &mystat);
Теперь проверьте rc и (возможно) errno.
РЕДАКТИРОВАТЬ 2011-09-18 приложение:
Обе функции access () и stat () возвращают 0, если путь указывает на нефайл (directory, fifo, symlink и т. Д.)
В случае stat () это можно проверить с помощью "((st_mode & S_IFREG) == S_IFREG)".
Лучший способ - просто попытаться открыть файл с помощью open () или fopen ().