XenevaOS
Loading...
Searching...
No Matches
stat.h
Go to the documentation of this file.
1
32#ifndef __STAT_H__
33#define __STAT_H__
34
35#include <sys/types.h>
36#include <time.h>
37#include <_xeneva.h>
38
39#ifdef __cplusplus
41#endif
42
43 // mode_t values for st_mode - values in octal
44#define S_IFMT 0170000 // bit mask for the file type
45#define S_IFSOCK 0140000 // socket
46#define S_IFLNK 0120000 // symbolic link
47#define S_IFREG 0100000 // regular file
48#define S_IFBLK 0060000 // block device
49#define S_IFDIR 0040000 // directory
50#define S_IFCHR 0020000 // character device
51#define S_IFIFO 0010000 // FIFO
52#define S_ISUID 0004000 // set UID bit
53#define S_ISGID 0002000 // set-group-ID bit
54#define S_ISVTX 0001000 // sticky bit
55
56 // Macros for interpreting st_mode
57#define S_ISREG(m) (((m) & S_IFREG) == S_IFREG) // regular file?
58#define S_ISDIR(m) (((m) & S_IFDIR) == S_IFDIR) // directory?
59#define S_ISCHR(m) (((m) & S_IFCHR) == S_IFCHR) // character device?
60#define S_ISBLK(m) (((m) & S_IFBLK) == S_IFBLK) // block device?
61#define S_ISFIFO(m) (((m) & S_IFIFO) == S_IFIFO) // FIFO (named pipe)?
62#define S_ISLNK(m) (((m) & S_IFLNK) == S_IFLNK) // symbolic link?
63#define S_ISSOCK(m) (((m) & S_IFSOCK) == S_IFSOCK) // socket?
64
65 struct stat {
66 dev_t st_dev; // device
67 ino_t st_ino; // inode
68 mode_t st_mode; // protection
69 nlink_t st_nlink; // number of hard links
70 uid_t st_uid; // user ID of owner
71 gid_t st_gid; // group ID of owner
72 dev_t st_rdev; // device type (if inode device)
73 off_t st_size; // total size, in bytes
74 blksize_t st_blksize; // blocksize for filesystem I/O
75 blkcnt_t st_blocks; // number of blocks allocated
76 time_t st_atime; // time of last access
77 time_t st_mtime; // time of last modification
78 time_t st_ctime; // time of last change
79 };
80
81 XE_LIB int mkdir(const char*, mode_t);
82 XE_LIB int stat(const char*, struct stat*);
83
84#ifdef __cplusplus
85}
86#endif
87
88#endif
long time_t
Definition types.h:53
int mode_t
Definition types.h:41
unsigned off_t
Definition types.h:37
unsigned blksize_t
Definition types.h:43
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
#define mkdir
Definition acwin.h:185
uint64_t blkcnt_t
Definition kernel.h:83
uint32_t dev_t
Definition kernel.h:87
uint32_t nlink_t
Definition kernel.h:89
uint32_t gid_t
Definition kernel.h:86
uint32_t ino_t
Definition kernel.h:88
uint32_t uid_t
Definition kernel.h:85
Definition stat.h:65
off_t st_size
Definition stat.h:73
nlink_t st_nlink
Definition stat.h:69
time_t st_ctime
Definition stat.h:78
blksize_t st_blksize
Definition stat.h:74
blkcnt_t st_blocks
Definition stat.h:75
uid_t st_uid
Definition stat.h:70
mode_t st_mode
Definition stat.h:68
time_t st_mtime
Definition stat.h:77
ino_t st_ino
Definition stat.h:67
dev_t st_rdev
Definition stat.h:72
time_t st_atime
Definition stat.h:76
gid_t st_gid
Definition stat.h:71
dev_t st_dev
Definition stat.h:66