📄 stat.h
字号:
/* *---------------------------------------------------------------------- * T-Kernel / Standard Extension * * Copyright (C) 2006 by Ken Sakamura. All rights reserved. * T-Kernel / Standard Extension is distributed * under the T-License for T-Kernel / Standard Extension. *---------------------------------------------------------------------- * * Version: 1.00.00 * Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/11. * *---------------------------------------------------------------------- *//* * stat.h * */#ifndef __STDFILE_SYS_STAT_H__#define __STDFILE_SYS_STAT_H__#include "time.h"#ifdef __cplusplusextern "C" {#endif/* * File information */struct stat { dev_t st_dev; /* Device ID */ ino_t st_ino; /* File serial number */ mode_t st_mode; /* File mode */ nlink_t st_nlink; /* Number of links */ uid_t st_uid; /* Owner ID */ gid_t st_gid; /* Group ID */ dev_t st_rdev; /* Device type */ struct timespec st_atimespec; /* Time of latest access */ struct timespec st_mtimespec; /* Time of latest update */ struct timespec st_ctimespec; /* Time of latest file state update */ off_t st_size; /* File size (number of bytes) */ int64_t st_blocks; /* Number of blocks allocated to file */ u_int32_t st_blksize; /* Block size (number of bytes) */ u_int32_t st_flags; /* User-defined flag */ u_int32_t st_gen; /* File generation number */ int32_t st_lspare; /* (Reserved) */ int64_t st_qspare[2]; /* (Reserved) */};#define st_atime st_atimespec.tv_sec#define st_mtime st_mtimespec.tv_sec#define st_ctime st_ctimespec.tv_sec#define S_BLKSIZE 512 /* Block size (number of bytes) to be used in st_blocks *//* * File mode (st_mode) */#define S_IRWXU 0x01C0U /* 0000700 Owner RWX mask */#define S_IRUSR 0x0100U /* 0000400 Owner R read enable */#define S_IWUSR 0x0080U /* 0000200 Owner W write enable*/#define S_IXUSR 0x0040U /* 0000100 Owner X execution enable */#define S_IRWXG 0x0038U /* 0000070 Group RWX mask */#define S_IRGRP 0x0020U /* 0000040 Group R read enable */#define S_IWGRP 0x0010U /* 0000020 Group W write enable */#define S_IXGRP 0x0008U /* 0000010 Group X execution enable */#define S_IRWXO 0x0007U /* 0000007 Other RWX mask */#define S_IROTH 0x0004U /* 0000004 Other R read enable */#define S_IWOTH 0x0002U /* 0000002 Other W write enable */#define S_IXOTH 0x0001U /* 0000001 Other X execution enable */#define S_ISUID 0x0800U /* 0004000 Runtime user ID setting */#define S_ISGID 0x0400U /* 0002000 Runtime group ID setting */#define S_ISVTX 0x0200U /* 0001000 Sticky bit */#define S_IFMT 0xF000U /* 0170000 File type mask */#define S_IFIFO 0x1000U /* 0010000 Name pipe (FIFO) */#define S_IFCHR 0x2000U /* 0020000 Character-type special file */#define S_IFDIR 0x4000U /* 0040000 Directory */#define S_IFBLK 0x6000U /* 0060000 Block-type special file */#define S_IFREG 0x8000U /* 0100000 Normal file */#define S_IFLNK 0xA000U /* 0120000 Symbolic link */#define S_IFSOCK 0xC000U /* 0140000 Socket */#define S_ISFIFO(m) ( ((m) & S_IFMT) == S_IFIFO )#define S_ISCHR(m) ( ((m) & S_IFMT) == S_IFCHR )#define S_ISDIR(m) ( ((m) & S_IFMT) == S_IFDIR )#define S_ISBLK(m) ( ((m) & S_IFMT) == S_IFBLK )#define S_ISREG(m) ( ((m) & S_IFMT) == S_IFREG )#define S_ISLNK(m) ( ((m) & S_IFMT) == S_IFLNK )#define S_ISSOCK(m) ( ((m) & S_IFMT) == S_IFSOCK )/* * User-defined flag (st_flags) */#define SF_ARCHIVED 0x00010000U /* Archive file */#define SF_SYSTEM 0x40000000U /* System file */#define SF_HIDDEN 0x80000000U /* Hidden file *//* * System call */extern int mkdir( const char *path, mode_t mode );extern int stat( const char *path, struct stat *sb );extern int lstat( const char *path, struct stat *sb );extern int fstat( int fildes, struct stat *sb );extern int chmod( const char *path, mode_t mode );extern int fchmod( int fd, mode_t mode );extern mode_t umask( mode_t cmask );#ifdef __cplusplus}#endif#endif /* __STDFILE_SYS_STAT_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -