#ifndef __LIBS_STAT_H__ #define __LIBS_STAT_H__ #include struct stat { uint32_t st_mode; // protection mode and file type size_t st_nlinks; // number of hard links size_t st_blocks; // number of blocks file is using size_t st_size; // file size (bytes) }; #define S_IFMT 070000 // mask for type of file #define S_IFREG 010000 // ordinary regular file #define S_IFDIR 020000 // directory #define S_IFLNK 030000 // symbolic link #define S_IFCHR 040000 // character device #define S_IFBLK 050000 // block device #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) // regular file #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) // directory #define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) // symlink #define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) // char device #define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) // block device #endif /* !__LIBS_STAT_H__ */