Start 1.33.0 development cycle
[oweals/busybox.git] / libbb / isdirectory.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * Utility routines.
4  *
5  * Based in part on code from sash, Copyright (c) 1999 by David I. Bell
6  * Permission has been granted to redistribute this code under GPL.
7  *
8  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
9  */
10 #include "libbb.h"
11
12 /*
13  * Return TRUE if fileName is a directory.
14  * Nonexistent files return FALSE.
15  */
16 int FAST_FUNC is_directory(const char *fileName, int followLinks)
17 {
18         int status;
19         struct stat statBuf;
20
21         if (followLinks)
22                 status = stat(fileName, &statBuf);
23         else
24                 status = lstat(fileName, &statBuf);
25
26         status = (status == 0 && S_ISDIR(statBuf.st_mode));
27
28         return status;
29 }