I'm using opendir function to check if a directory exists. The problem is that I'm using it on a massive loop and it's inflating the ram used by my app.
What is the best (fastest) way to check if a directory exists in C? What is the best (fastest) way to create it if doesn't exists?
Consider using stat
. S_ISDIR(s.st_mode)
will tell you if it's a directory.
Sample:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
...
struct stat s;
int err = stat("/path/to/possible_dir", &s);
if(-1 == err) {
if(ENOENT == errno) {
/* does not exist */
} else {
perror("stat");
exit(1);
}
} else {
if(S_ISDIR(s.st_mode)) {
/* it's a dir */
} else {
/* exists but is no dir */
}
}
...