stat.h - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       stat.h (2327B)
       ---
            1 #ifndef _SYS_STAT_H
            2 #define _SYS_STAT_H
            3 
            4 #include <sys/types.h>
            5 
            6 struct stat
            7 {
            8         dev_t        st_dev;                // Device ID of device containing file. 
            9         ino_t        st_ino;                // File serial number. 
           10         mode_t        st_mode;        // Mode of file.
           11         nlink_t        st_nlink;        // Number of hard links to the file. 
           12         uid_t        st_uid;                // User ID of file. 
           13         gid_t        st_gid;                // Group ID of file. 
           14         dev_t        st_rdev;        // Device ID for device special file.
           15         blksize_t st_blksize;        // Size of blocks in this file
           16         blkcnt_t st_blocks;        // Number of blocks allocated for this file
           17         off_t        st_size;        // File size in bytes.
           18         time_t        st_atime;        // Time of last access. 
           19         time_t        st_mtime;        // Time of last data modification. 
           20         time_t        st_ctime;        // Time of last status change. 
           21 };
           22 
           23 
           24 // File mode bits - matching vx/env.h
           25 #define S_IFMT                070000                // File type bit mask
           26 #define S_IFNULL        000000                // Unused inode
           27 #define S_IFREG                010000                // Regular file
           28 #define S_IFDIR                020000                // Directory
           29 #define S_IFLNK                030000                // Symbolic link
           30 #define S_IFSOCK        040000                // Socket
           31 #define S_IFIFO                050000                // FIFO
           32 #define S_IFBLK                060000                // Block device
           33 #define S_IFCHR                070000                // Character device
           34 
           35 #define S_ISREG(m)        (((m) & S_IFMT) == S_IFREG)
           36 #define S_ISDIR(m)        (((m) & S_IFMT) == S_IFDIR)
           37 #define S_ISLNK(m)        (((m) & S_IFMT) == S_IFLNK)
           38 #define S_ISSOCK(m)        (((m) & S_IFMT) == S_IFSOCK)
           39 #define S_ISFIFO(m)        (((m) & S_IFMT) == S_IFIFO)
           40 #define S_ISBLK(m)        (((m) & S_IFMT) == S_IFBLK)
           41 #define S_ISCHR(m)        (((m) & S_IFMT) == S_IFCHR)
           42 
           43 #define S_ISUID                004000
           44 #define S_ISGID                002000
           45 #define S_ISVTX                001000
           46 
           47 #define S_IRWXU                000700
           48 #define S_IRUSR                000400
           49 #define S_IWUSR                000200
           50 #define S_IXUSR                000100
           51                          
           52 #define S_IRWXG                000070
           53 #define S_IRGRP                000040
           54 #define S_IWGRP                000020
           55 #define S_IXGRP                000010
           56                          
           57 #define S_IRWXO                000007
           58 #define S_IROTH                000004
           59 #define S_IWOTH                000002
           60 #define S_IXOTH                000001
           61 
           62 #define        DEFFILEMODE        (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
           63 
           64 int stat(const char *file_name, struct stat *buf);
           65 int fstat(int filedes, struct stat *buf);
           66 int lstat(const char *file_name, struct stat *buf);
           67 
           68 int chmod(const char *path, mode_t mode);
           69 int fchmod(int fd, mode_t mode);
           70 
           71 int mkdir(const char *path, mode_t mode);
           72 int mkfifo(const char *path, mode_t mode);
           73 int mknod(const char *path, mode_t mode);
           74 
           75 mode_t umask(mode_t cmask);
           76 
           77 
           78 #endif        // _SYS_STAT_H