Puoi utilizzare anche stat
#include <iostream>
#include <sys/stat.h>
int main( int argc, char *argv[] )
{
struct stat stat_buf;
std::string nome_file = "./";
if ( stat( nome_file.c_str(), &stat_buf) == 0 ) {
if( stat_buf.st_mode & S_IFDIR ) {
std::cout << nome_file << " è una directory" << std::endl;
}
else if( stat_buf.st_mode & S_IFREG ) {
std::cout << nome_file << " è un file regolare" << std::endl;
}
else {
// altro se serve
}
}
else
std::cout << "erro nella chiamata a stat" << std::endl;
return 0;
}