#include <stdio.h>
#include <sys/stat.h>
// ============================================================================
// Functions
// ============================================================================
// functions return 1 if true
int testfile(char *file, unsigned type)
{
int returnvalue;
struct stat buf;
if (lstat (file, &buf) == 0)
{
// its a file, test if a synlink
returnvalue = (( buf.st_mode & S_IFMT) == type);
}
else
{
// its not even a file
returnvalue = 0;
}
return returnvalue;
}
int isregular(char *file) { return testfile(file, S_IFREG); }
int issymlink(char *file) { return testfile(file, S_IFLNK); }
int isdir(char *file) { return testfile(file, S_IFDIR); }