statx(2) System Calls Manual statx(2) statx - () (libc -lc) #define _GNU_SOURCE /* feature_test_macros(7) */ #include /* AT_* */ #include int statx(int dirfd, const char *_Nullable restrict path, int flags, unsigned int mask, struct statx *restrict statxbuf); statxbuf. : struct statx { __u32 stx_mask; /* */ __u32 stx_blksize; /* */ __u64 stx_attributes; /* */ __u32 stx_nlink; /* */ __u32 stx_uid; /* */ __u32 stx_gid; /* */ __u16 stx_mode; /* */ __u64 stx_ino; /* (Inode) */ __u64 stx_size; /* */ __u64 stx_blocks; /* 512B */ __u64 stx_attributes_mask; /* stx_attributes */ /* */ struct statx_timestamp stx_atime; /* */ struct statx_timestamp stx_btime; /* */ struct statx_timestamp stx_ctime; /* */ struct statx_timestamp stx_mtime; /* */ /* */ __u32 stx_rdev_major; /* */ __u32 stx_rdev_minor; /* */ /* */ __u32 stx_dev_major; /* */ __u32 stx_dev_minor; /* */ __u64 stx_mnt_id; /* */ /* / */ __u32 stx_dio_mem_align; __u32 stx_dio_offset_align; __u64 stx_subvol; /* */ /* / */ __u32 stx_atomic_write_unit_min; __u32 stx_atomic_write_unit_max; __u32 stx_atomic_write_segments_max; /* / */ __u32 stx_dio_read_offset_align; /* / */ __u32 stx_atomic_write_unit_max_opt; }; : struct statx_timestamp { __s64 tv_sec; /* ( ) */ __u32 tv_nsec; /* tv_sec */ }; ( .) statx(): statx() () path . statx() path dirfd flags : path . dirfd. path dirfd AT_FDCWD path . path dirfd path dirfd. ( openat(2) .) path ( NULL 6.11) AT_EMPTY_PATH flags ( ) dirfd. flags . flags OR : AT_EMPTY_PATH path ( NULL 6.11) dirfd ( O_PATH open(2)). dirfd . dirfd AT_FDCWD . AT_NO_AUTOMOUNT ("basename") path . ( ). . AT_NO_AUTOMOUNT . stat(2) lstat(2) fstatat(2) AT_NO_AUTOMOUNT . AT_SYMLINK_NOFOLLOW path : lstat(2). flags . OR : AT_STATX_SYNC_AS_STAT stat(2). . AT_STATX_FORCE_SYNC . . AT_STATX_DONT_SYNC . - (lease) . mask statx() . mask ORed : STATX_TYPE stx_mode & S_IFMT STATX_MODE stx_mode & ~S_IFMT STATX_NLINK stx_nlink STATX_UID stx_uid STATX_GID stx_gid STATX_ATIME stx_atime STATX_MTIME stx_mtime STATX_CTIME stx_ctime STATX_INO stx_ino STATX_SIZE stx_size STATX_BLOCKS stx_blocks STATX_BASIC_STATS [ ] STATX_BTIME stx_btime STATX_ALL STATX_BASIC_STATS | STATX_BTIME. . STATX_MNT_ID stx_mnt_id ( 5.8) STATX_DIOALIGN stx_dio_mem_align stx_dio_offset_align. ( 6.1 ) STATX_MNT_ID_UNIQUE stx_mnt_id ( 6.8) STATX_SUBVOL stx_subvol ( 6.10 ) STATX_WRITE_ATOMIC stx_atomic_write_unit_min stx_atomic_write_unit_max stx_atomic_write_segments_max stx_atomic_write_unit_max_opt. ( 6.11 ) STATX_DIO_READ_ALIGN stx_dio_read_offset_align. ( 6.14 ) mask . ( EINVAL ). statx.stx_mask. mask UINT_MAX ( ) . I I. stx_mask . stx_mask mask . . ( ). stx_mask mask. ( ) stx_mask ( (UID) (GID) ). . stx_mask. : statx . stx_mode stx_uid chmod(2) chown(2) stat() stx_mode stx_uid stx_uid stx_mode . stx_mask ( ) statx : stx_blksize "" . ( -- .) stx_attributes ( ). stx_nlink . stx_uid . stx_gid . stx_mode . inode(7) . stx_ino (inode) . stx_size ( ) . (null) . stx_blocks 512 . ( stx_size/512 .) stx_attributes_mask stx_attributes (VFS) . stx_atime . stx_btime . stx_ctime . stx_mtime . stx_dev_major stx_dev_minor (). stx_rdev_major stx_rdev_minor () . stx_mnt_id STATX_MNT_ID (mount ID) . name_to_handle_at(2) /proc/self/mountinfo. STATX_MNT_ID_UNIQUE . listmount(2) statmount(2). . stx_dio_mem_align () (O_DIRECT) 0 . STATX_DIOALIGN ( stx_dio_mem_align stx_dio_offset_align) 6.1. ext4 f2fs xfs 6.1. stx_dio_offset_align () (O_DIRECT) 0 . stx_dio_mem_align . stx_dio_read_offset_align () (O_DIRECT) . stx_dio_offset_align . stx_dio_offset_align . stx_dio_mem_align . STATX_DIO_READ_ALIGN ( stx_dio_offset_align) xfs 6.14. stx_subvol (subvolume) . . bcachefs btrfs 6.10. stx_atomic_write_unit_min stx_atomic_write_unit_max () (O_DIRECT) (torn-write protection). 2. STATX_WRITE_ATOMIC ( stx_atomic_write_unit_min stx_atomic_write_unit_max stx_atomic_write_segments_max) 6.11. xfs ext4 6.13. stx_atomic_write_unit_max_opt () . stx_atomic_write_unit_max stx_atomic_write_unit_min. stx_atomic_write_unit_max . stx_atomic_write_unit_max_opt ( ). stx_atomic_write_segments_max . RWF_ATOMIC pwritev2(2). inode(7). stx_attributes OR . stx_attributes_mask . stx_attributes_mask stx_attributes . : STATX_ATTR_COMPRESSED . STATX_ATTR_IMMUTABLE : . chattr(1). STATX_ATTR_APPEND . . chattr(1). STATX_ATTR_NODUMP dump(8). chattr(1). STATX_ATTR_ENCRYPTED . STATX_ATTR_VERITY ( 5.5) fs-verity. ( Merkle tree). STATX_ATTR_WRITE_ATOMIC ( 6.11) . STATX_ATTR_DAX ( 5.8) DAX ( ). DAX . DAX. DAX / . (memory mapped I/O) . DAX O_SYNC ( open(2)) (metadata) . DAX MAP_SYNC fsync(2) . mmap(2) . STATX_ATTR_MOUNT_ROOT ( 5.8) . . -1 errno . EACCES path. ( path_resolution(7).) EBADF path dirfd AT_FDCWD . EFAULT path statxbuf NULL ( 6.11 AT_EMPTY_PATH flags path NULL). EINVAL flags. EINVAL mask. ( STATX__RESERVED 0x80000000U.) ELOOP . ENAMETOOLONG path . ENOENT path path AT_EMPTY_PATH flags. ENOMEM ( ). ENOTDIR path path dirfd . . 4.11 glibc 2.28. ls(1) stat(1) access(2) chmod(2) chown(2) name_to_handle_at(2) readlink(2) stat(2) utime(2) proc(5) capabilities(7) inode(7) symlink(7) 3 . . : . 6.18 8 2026 statx(2)