mincore(2) - wariua/manpages-ko GitHub Wiki

NAME

mincore - νŽ˜μ΄μ§€κ°€ λ©”λͺ¨λ¦¬μ— μƒμ£Όν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κΈ°

SYNOPSIS

#include <unistd.h>
#include <sys/mman.h>

int mincore(void *addr, size_t length, unsigned char *vec);

glibc κΈ°λŠ₯ 확인 맀크둜 μš”κ±΄ (feature_test_macros(7) μ°Έκ³ ):

mincore():
glibc 2.19λΆ€ν„°:
_DEFAULT_SOURCE
glibc 2.19 및 이전:
_BSD_SOURCE || _SVID_SOURCE

DESCRIPTION

mincore()λŠ” 호좜 ν”„λ‘œμ„ΈμŠ€ 가상 λ©”λͺ¨λ¦¬μ˜ νŽ˜μ΄μ§€λ“€μ΄ μ½”μ–΄(RAM)에 μƒμ£Όν•˜κ³  μžˆμ–΄μ„œ μ°Έμ‘° μ‹œ λ””μŠ€ν¬ μ ‘κ·Ό(νŽ˜μ΄μ§€ 폴트)을 μœ λ°œν•˜μ§€ μ•ŠλŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 벑터λ₯Ό λ°˜ν™˜ν•œλ‹€. μ£Όμ†Œ addrμ—μ„œ μ‹œμž‘ν•΄μ„œ length λ°”μ΄νŠΈλ§ŒνΌ μ΄μ–΄μ§€λŠ” νŽ˜μ΄μ§€λ“€μ— λŒ€ν•œ 상주 정보λ₯Ό 컀널이 λ°˜ν™˜ν•œλ‹€.

addr μΈμžλŠ” μ‹œμŠ€ν…œ νŽ˜μ΄μ§€ 크기의 λ°°μˆ˜μ—¬μ•Ό ν•œλ‹€. length μΈμžλŠ” νŽ˜μ΄μ§€ 크기의 배수일 ν•„μš”κ°€ μ—†λ‹€. ν•˜μ§€λ§Œ νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ 상주 정보λ₯Ό λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ— μ‹€μ§ˆμ μœΌλ‘œ lengthκ°€ νŽ˜μ΄μ§€ 크기의 λ‹€μŒ 배수둜 올림 λœλ‹€. sysconf(_SC_PAGESIZE)둜 νŽ˜μ΄μ§€ 크기(PAGE_SIZE)λ₯Ό 얻을 수 μžˆλ‹€.

vec μΈμžλŠ” 적어도 (length+PAGE_SIZE-1) / PAGE_SIZE λ°”μ΄νŠΈλ₯Ό 담은 배열에 λŒ€ν•œ 포인터여야 ν•œλ‹€. λ°˜ν™˜ μ‹œμ—, νŽ˜μ΄μ§€κ°€ ν˜„μž¬ λ©”λͺ¨λ¦¬μ— μƒμ£Όν•˜κ³  있으면 λŒ€μ‘ν•˜λŠ” λ°”μ΄νŠΈμ˜ μ΅œν•˜μœ„ λΉ„νŠΈκ°€ μ„€μ •λ˜κ³ , μ•„λ‹ˆλ©΄ ν•΄μ œλœλ‹€. (각 λ°”μ΄νŠΈμ˜ λ‹€λ₯Έ λΉ„νŠΈλ“€μ˜ 섀정은 κ·œμ •λ˜μ–΄ μžˆμ§€ μ•Šλ‹€. κ·Έ λΉ„νŠΈλ“€μ€ ν–₯ν›„ μš©λ„λ₯Ό μœ„ν•΄ μ˜ˆλΉ„λ˜μ–΄ μžˆλ‹€.) λ‹Ήμ—°ν•˜μ§€λ§Œ vec에 λ°˜ν™˜λœ μ •λ³΄λŠ” μŠ€λƒ…μƒ·μΌ 뿐이닀. λ©”λͺ¨λ¦¬μ— κ³ μ •λ˜μ–΄ μžˆμ§€ μ•Šμ€ νŽ˜μ΄μ§€λŠ” μ–Έμ œλ“  λ“€μ–΄μ˜€κ³  λ‚˜κ°ˆ 수 μžˆμœΌλ―€λ‘œ 호좜 λ°˜ν™˜ μ‹œμ μ— vec의 λ‚΄μš©μ΄ 이미 낑은 것일 μˆ˜λ„ μžˆλ‹€.

RETURN VALUE

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

ERRORS

EAGAIN
컀널에 μΌμ‹œμ μœΌλ‘œ μžμ›μ΄ λΆ€μ‘±ν•˜λ‹€.
EFAULT
vec이 μœ νš¨ν•˜μ§€ μ•Šμ€ μ£Όμ†Œλ₯Ό 가리킀고 μžˆλ‹€.
EINVAL
addr이 νŽ˜μ΄μ§€ 크기의 λ°°μˆ˜κ°€ μ•„λ‹ˆλ‹€.
ENOMEM
lengthκ°€ (TASK_SIZE - addr)보닀 크닀. (length에 음수 값을 μ§€μ •ν•˜λ©΄ κ·Έ 값을 큰 λΆ€ν˜Έ μ—†λŠ” μ •μˆ˜λ‘œ ν•΄μ„ν•˜κΈ° λ•Œλ¬Έμ— μ΄λ ‡κ²Œ 될 수 μžˆλ‹€.) λ¦¬λˆ…μŠ€ 2.6.11 및 μ΄μ „μ—μ„œλŠ” 이 κ²½μš°μ— EINVAL 였λ₯˜λ₯Ό λ°˜ν™˜ν–ˆλ‹€.
ENOMEM
addrμ—μ„œ addr + lengthκΉŒμ§€μ— λ§΅ μ•ˆ 된 λ©”λͺ¨λ¦¬κ°€ ν¬ν•¨λ˜μ–΄ μžˆλ‹€.

VERSIONS

λ¦¬λˆ…μŠ€ 2.3.99pre1 및 glibc 2.2λΆ€ν„° μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.

CONFORMING TO

mincore()λŠ” POSIX.1에 λͺ…μ„Έλ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©°, λͺ¨λ“  μœ λ‹‰μŠ€ κ΅¬ν˜„μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜μ§€λŠ” μ•Šλ‹€.

BUGS

컀널 2.6.21 μ „μ—μ„œ MAP_PRIVATE λ§€ν•‘μ΄λ‚˜ (remap_file_pages(2)둜 μˆ˜λ¦½ν•œ) λΉ„μ„ ν˜• 맀핑에 λŒ€ν•΄ mincore()κ°€ μ˜¬λ°”λ₯Έ 정보λ₯Ό λ°˜ν™˜ν•˜μ§€ μ•Šμ•˜λ‹€.

SEE ALSO

fincore(1), madvise(2), mlock(2), mmap(2), posix_fadvise(2), posix_madvise(3)


2017-09-15

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