statvfs(3) - wariua/manpages-ko GitHub Wiki

NAME

statvfs, fstatvfs - 파일 μ‹œμŠ€ν…œ 톡계 μ–»κΈ°

SYNOPSIS

#include <sys/statvfs.h>

int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);

DESCRIPTION

statvfs() ν•¨μˆ˜λŠ” 마운트 된 파일 μ‹œμŠ€ν…œμ— λŒ€ν•œ 정보λ₯Ό λ°˜ν™˜ν•œλ‹€. pathλŠ” 마운트 된 파일 μ‹œμŠ€ν…œ λ‚΄ μž„μ˜ 파일의 경둜λͺ…이닀. bufλŠ” λŒ€λž΅ λ‹€μŒμ²˜λŸΌ μ •μ˜λΌ μžˆλŠ” statvfs ꡬ쑰체에 λŒ€ν•œ 포인터닀.

struct statvfs {
    unsigned long  f_bsize;    /* 파일 μ‹œμŠ€ν…œ 블둝 크기 */
    unsigned long  f_frsize;   /* λ‹¨νŽΈ 크기 */
    fsblkcnt_t     f_blocks;   /* f_frsize λ‹¨μœ„μ˜ fs 크기 */
    fsblkcnt_t     f_bfree;    /* 유휴 블둝 수 */
    fsblkcnt_t     f_bavail;   /* λΉ„νŠΉκΆŒ μ‚¬μš©μžλ₯Ό μœ„ν•œ
                                  유휴 블둝 수 */
    fsfilcnt_t     f_files;    /* μ•„μ΄λ…Έλ“œ 수 */
    fsfilcnt_t     f_ffree;    /* 유휴 μ•„μ΄λ…Έλ“œ 수 */
    fsfilcnt_t     f_favail;   /* λΉ„νŠΉκΆŒ μ‚¬μš©μžλ₯Ό μœ„ν•œ
                                  유휴 μ•„μ΄λ…Έλ“œ 수 */
    unsigned long  f_fsid;     /* 파일 μ‹œμŠ€ν…œ ID */
    unsigned long  f_flag;     /* 마운트 ν”Œλž˜κ·Έ */
    unsigned long  f_namemax;  /* 파일λͺ… μ΅œλŒ€ 길이 */
};

νƒ€μž… fsblkcnt_t와 fsfilcnt_tλŠ” <sys/types.h>에 μ •μ˜λΌ μžˆλ‹€. λ‘˜ λͺ¨λ‘ μ˜ˆμ „μ—λŠ” unsigned longμ΄μ—ˆλ‹€.

f_flag ν•„λ“œλŠ” 이 파일 μ‹œμŠ€ν…œμ„ 마운트 ν•  λ•Œ μ‚¬μš©ν•œ μ—¬λŸ¬ μ˜΅μ…˜λ“€μ„ λ‚˜νƒ€λ‚΄λŠ” λΉ„νŠΈ λ§ˆμŠ€ν¬μ΄λ‹€. λ‹€μŒ λΉ„νŠΈλ₯Ό 0개 이상 λ‹΄λŠ”λ‹€.

ST_MANDLOCK
파일 μ‹œμŠ€ν…œ μƒμ—μ„œ κ°•μ œμ  락킹을 ν—ˆμš©ν•œλ‹€. (fcntl(2) μ°Έκ³ .)
ST_NOATIME
μ ‘κ·Ό μ‹œκ°„μ„ κ°±μ‹ ν•˜μ§€ μ•ŠλŠ”λ‹€. mount(2) μ°Έκ³ .
ST_NODEV
파일 μ‹œμŠ€ν…œ μƒμ—μ„œ μž₯치 특수 νŒŒμΌμ— λŒ€ν•œ 접근을 λΆˆν—ˆν•œλ‹€.
ST_NODIRATIME
디렉터리 μ ‘κ·Ό μ‹œκ°„μ„ κ°±μ‹ ν•˜μ§€ μ•ŠλŠ”λ‹€. mount(2) μ°Έκ³ .
ST_NOEXEC
파일 μ‹œμŠ€ν…œ μƒμ—μ„œ ν”„λ‘œκ·Έλž¨ 싀행을 λΆˆν—ˆν•œλ‹€.
ST_NOSUID
파일 μ‹œμŠ€ν…œ μƒμ˜ μ‹€ν–‰ νŒŒμΌμ— λŒ€ν•΄ exec(3)μ—μ„œ set-user-ID 및 set-group-ID λΉ„νŠΈλ₯Ό λ¬΄μ‹œν•œλ‹€.
ST_RDONLY
파일 μ‹œμŠ€ν…œμ΄ 읽기 μ „μš©μœΌλ‘œ 마운트 돼 μžˆλ‹€.
ST_RELATIME
mtime/ctime에 λ”°λΌμ„œ atime을 κ°±μ‹ ν•œλ‹€. mount(2) μ°Έκ³ .
ST_SYNCHRONOUS
μ“°κΈ°λ₯Ό 파일 μ‹œμŠ€ν…œμœΌλ‘œ μ¦‰μ‹œ λ™κΈ°ν™”ν•œλ‹€. (open(2)의 O_SYNC μ„€λͺ… μ°Έκ³ .)

λͺ¨λ“  파일 μ‹œμŠ€ν…œμ—μ„œ λ°˜ν™˜ ꡬ쑰체의 λͺ¨λ“  ν•„λ“œλ“€μ— μœ μ˜λ―Έν•œ 값이 μžˆλŠ”μ§€ μ—¬λΆ€λŠ” λͺ…세돼 μžˆμ§€ μ•Šλ‹€.

fstatvfs()λŠ” λ””μŠ€ν¬λ¦½ν„° fdκ°€ κ°€λ¦¬ν‚€λŠ” μ—΄λ¦° νŒŒμΌμ— λŒ€ν•΄μ„œ 같은 정보λ₯Ό λ°˜ν™˜ν•œλ‹€.

RETURN VALUE

성곡 μ‹œ 0을 λ°˜ν™˜ν•œλ‹€. 였λ₯˜ μ‹œ -1을 λ°˜ν™˜ν•˜λ©° errnoλ₯Ό 적절히 μ„€μ •ν•œλ‹€.

ERRORS

EACCES
(statvfs()) path의 경둜 μ„ λ‘λΆ€μ˜ μ–΄λŠ μš”μ†Œμ— λŒ€ν•΄ 탐색 κΆŒν•œμ΄ κ±°λΆ€λ˜μ—ˆλ‹€. (path_resolution(7)도 μ°Έκ³ .)
EBADF
(fstatvfs()) fdκ°€ μœ νš¨ν•œ μ—΄λ¦° 파일 λ””μŠ€ν¬λ¦½ν„°κ°€ μ•„λ‹ˆλ‹€.
EFAULT
bufλ‚˜ pathκ°€ μœ νš¨ν•˜μ§€ μ•Šμ€ μ£Όμ†Œλ₯Ό 가리킀고 μžˆλ‹€.
EINTR
호좜이 μ‹œκ·Έλ„μ— μ˜ν•΄ μ€‘λ‹¨λ˜μ—ˆλ‹€. signal(7) μ°Έκ³ .
EIO
파일 μ‹œμŠ€ν…œμ—μ„œ 읽기λ₯Ό ν•˜λ˜ 쀑 I/O 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.
ELOOP
(statvfs()) pathλ₯Ό λ³€ν™˜ν•˜λŠ” λ™μ•ˆ λ„ˆλ¬΄ λ§Žμ€ 심볼릭 링크λ₯Ό λ§Œλ‚¬λ‹€.
ENAMETOOLONG
(statvfs()) pathκ°€ λ„ˆλ¬΄ κΈΈλ‹€.
ENOENT
(statvfs()) pathκ°€ κ°€λ¦¬ν‚€λŠ” 파일이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
ENOMEM
μ‚¬μš© κ°€λŠ₯ν•œ 컀널 λ©”λͺ¨λ¦¬κ°€ μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€.
ENOSYS
파일 μ‹œμŠ€ν…œμ—μ„œ 이 ν˜ΈμΆœμ„ μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.
ENOTDIR
(statvfs()) path의 경둜 μ„ λ‘λΆ€μ˜ ν•œ μš”μ†Œκ°€ 디렉터리가 μ•„λ‹ˆλ‹€.
EOVERFLOW
일뢀 값이 λ„ˆλ¬΄ μ»€μ„œ λ°˜ν™˜ ꡬ쑰체둜 ν‘œν˜„ν•  수 μ—†λ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)λ₯Ό 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
statvfs(), fstatvfs() μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Safe

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

f_flag ν•„λ“œμ˜ ST_NOSUID 및 ST_RDONLY ν”Œλž˜κ·Έλ§Œ POSIX.1에 λͺ…세돼 μžˆλ‹€. λ‹€λ₯Έ ν•„λ“œλ“€μ˜ μ •μ˜λ₯Ό μ–»μœΌλ €λ©΄ _GNU_SOURCEλ₯Ό μ •μ˜ν•΄μ•Ό ν•œλ‹€.

NOTES

λ¦¬λˆ…μŠ€ 컀널에 μžˆλŠ” μ‹œμŠ€ν…œ 호좜 statfs(2) 및 fstatfs(2)κ°€ 이 라이브러리 ν˜ΈμΆœμ„ λ’·λ°›μΉ¨ν•œλ‹€.

glibc 버전 2.13 μ „μ˜ statvfs()μ—μ„œλŠ” /proc/mounts에 λ‚˜μ˜€λŠ” 마운트 μ˜΅μ…˜λ“€μ„ ν›‘μ–΄μ„œ f_flag ν•„λ“œμ˜ λΉ„νŠΈλ“€μ„ 채웠닀. ν•˜μ§€λ§Œ λ¦¬λˆ…μŠ€ 2.6.36λΆ€ν„° 기반 μ‹œμŠ€ν…œ 호좜 statfs(2)κ°€ f_flags ν•„λ“œλ₯Ό 톡해 ν•„μš”ν•œ 정보λ₯Ό μ œκ³΅ν•΄ μ£Όλ©°, κ·Έλž˜μ„œ glibc 버전 2.13λΆ€ν„°λŠ” statvfs() ν•¨μˆ˜μ—μ„œ /proc/mountsλ₯Ό ν›‘λŠ” λŒ€μ‹  κ·Έ ν•„λ“œμ˜ 정보λ₯Ό μ΄μš©ν•˜κ²Œ λœλ‹€.

λ‹€μŒ 호좜의 glibc κ΅¬ν˜„μ—μ„œλŠ” pathλ₯Ό 인자둜 statvfs()λ₯Ό ν˜ΈμΆœν•΄μ„œ λ°˜ν™˜λœ f_frsize, f_frsize, f_bsize ν•„λ“œλ₯Ό 각각 μ‚¬μš©ν•œλ‹€.

pathconf(path, _PC_REC_XFER_ALIGN);
pathconf(path, _PC_ALLOC_SIZE_MIN);
pathconf(path, _PC_REC_MIN_XFER_SIZE);

SEE ALSO

statfs(2)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️