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