Related functions: Fstat, Lstat, chmod, Chown, Readlink, Utime
Header files: #include <sys/stat.h> #include <uninstd.h>
Define functions: Int stat (const char * file_name, struct stat *buf);
Function Description: Stat () is used to copy the file state referred to in parameter file_name to the structure referred to in parameter buf.
The following is a description of the parameters within the struct stat:
1 structStat {2dev_t St_dev;//device number of a device file3ino_t St_ino;//I-node of the Inode file4mode_t St_mode;//types of protection files and permissions to access them5nlink_t St_nlink;//number of hard links connects to the file with a file value of 1 that has just been created.6uid_t St_uid;//user ID of the owner of the owning file7gid_t St_gid;//group ID of the owner of the file that is the identity of the8dev_t St_rdev;//Device Type If this file is an appliance device file, it will be the unit number9off_t st_size;//Total size, in bytes file size, in bytesTenUnsignedLongSt_blksize;//blocksize the I/O buffer size for the filesystem I/O file system. OneU nsignedLongSt_blocks;//number of blocks allocated occupies a chunk of files, each chunk size is 512 bytes. Atime_t St_atime;//time of lastaccess file was last accessed or executed, and generally only changed with Mknod, Utime, read, write, and tructate. -time_t St_mtime;//time of the last modification file was modified at the end of the day, typically only when used with Mknod, Utime, and write -time_t St_ctime;//time of last changes i-node the most recent change, this parameter is updated when the file owner, group, and permissions are changed the};
The previously described St_mode defines the following cases:
1 1, s_ifmt0170000bit masks for file types2 2, S_ifsock0140000Scoket3 3, S_iflnk0120000Symbolic Connection4 4, S_ifreg0100000General Documents5 5, s_ifblk0060000Block Device6 6, S_ifdir0040000Catalogue7 7, S_IFCHR0020000character Device8 8, S_ififo0010000Advanced First Out9 9, S_isuid04000of the file (Setuser-ID on execution) bitTen Ten, S_isgid02000of the file (Setgroup-ID on execution) bit One One, S_ISVTX01000sticky bits of the file A A, S_irusr (S_iread)00400file owners have Read permissions - -, S_iwusr (S_iwrite)00200file owner with writable permission - -, S_ixusr (s_iexec)00100file owner has executable permissions the the, S_IRGRP00040user groups with readable permissions - -, S_IWGRP00020user groups have writable permissions - -, S_IXGRP00010user groups with executable permissions - -, S_iroth00004other users have Read permissions + +, S_iwoth00002other users have writable permissions - -, S_ixoth00001other users with executable permissions The above file types are defined in POSIX to check these types of macro definitions + +, S_islnk (st_mode) to determine if it is a symbolic connection A A, S_isreg (St_mode) is a generic file at at, S_isdir (St_mode) is a directory - -, S_ISCHR (St_mode) is a character device file - -, S_isblk (s3e) is FIFO - -, S_issock (St_mode) is a socket if a directory has a sticky bit (s_isvtx), then the file in this directory can only be deleted or renamed by the file owner, this directory owner, or root.
Return value: Execution succeeds returns 0, failure returns-1, error code is stored in errno.
Error code:
1 , ENOENT parameter file_name the specified file does not exist 2 3 4 5)67
Example:
Main () {4 struct stat buf;5 stat ("/etc/passwd", &buf); 6 printf ("/etc/passwd file size =%d \ n", Buf.st_size);
7}
Execution:/etc/passwd File size = 705
Reprint: Http://wenku.baidu.com/link?url=FUroWFwmMxc3teZpYMTIxf3gOu-FsYe_NIER218D7XZOA5VgiLbSsvfVjrFtphpkM_ Tqtovjort2aqeabmgkhg-lhobbjiqjkao3ohkydqq
C-language stat () function: Get file status