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

NAME

sysconf - λŸ°νƒ€μž„μ— ꡬ성 정보 μ–»κΈ°

SYNOPSIS

#include <unistd.h>

long sysconf(int name);

POSIXμ—μ„œλŠ” νŠΉμ • μ˜΅μ…˜μ΄ μ§€μ›λ˜λŠ”μ§€, λ˜λŠ” νŠΉμ • ꡬ성 μƒμˆ˜λ‚˜ μ œν•œκ°’μ΄ 무엇인지λ₯Ό μ‘μš©μ—μ„œ 컴파일 λ•Œλ‚˜ μ‹€ν–‰ λ•Œμ— 검사할 수 μžˆλ„λ‘ ν•œλ‹€.

컴파일 λ•Œμ—λŠ” <unistd.h> 및/λ˜λŠ” <limits.h>λ₯Ό ν¬ν•¨μ‹œν‚€κ³  νŠΉμ • 맀크둜 값을 κ²€μ‚¬ν•˜λ©΄ λœλ‹€.

μ‹€ν–‰ λ•Œμ—λŠ” μ—¬κΈ° μžˆλŠ” sysconf() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ 숫자 값을 λ¬Όμ–΄λ³Ό 수 μžˆλ‹€. 그리고 fpathconf(3)와 pathconf(3)λ₯Ό μ‚¬μš©ν•΄ 파일이 μœ„μΉ˜ν•œ 파일 μ‹œμŠ€ν…œμ— 따라 λ‹€λ₯Ό 수 μžˆλŠ” 숫자 값을 λ¬Όμ–΄λ³Ό 수 μžˆλ‹€. 또 confstr(3)을 μ‚¬μš©ν•΄ λ¬Έμžμ—΄ 값을 λ¬Όμ–΄λ³Ό 수 μžˆλ‹€.

이 ν•¨μˆ˜λ“€μ—μ„œ μ–»λŠ” 값듀은 μ‹œμŠ€ν…œ ꡬ성 μƒμˆ˜μ΄λ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ 수λͺ… λ™μ•ˆ λ°”λ€Œμ§€ μ•ŠλŠ”λ‹€.

μ˜΅μ…˜λ“€μ—λŠ” 보톡 <unistd.h>에 μ •μ˜λ˜μ–΄ μžˆμ„ 수 μžˆλŠ” μƒμˆ˜ _POSIX_FOOκ°€ μžˆλ‹€. 이 μƒμˆ˜κ°€ μ •μ˜λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ λŸ°νƒ€μž„μ— 물어봐야 ν•œλ‹€. -1으둜 μ •μ˜λ˜μ–΄ 있으면 κ·Έ μ˜΅μ…˜μ΄ μ§€μ›λ˜μ§€ μ•ŠλŠ” 것이닀. 0으둜 μ •μ˜λ˜μ–΄ 있으면 κ΄€λ ¨ ν•¨μˆ˜μ™€ 헀더가 μ‘΄μž¬ν•˜λŠ” κ²ƒμ΄μ§€λ§Œ μ‚¬μš©ν•  수 μžˆλŠ” 지원이 μ–΄λŠ 정도인지 λŸ°νƒ€μž„μ— 물어봐야 ν•œλ‹€. -1μ΄λ‚˜ 0 μ•„λ‹Œ κ°’μœΌλ‘œ μ •μ˜λ˜μ–΄ 있으면 κ·Έ μ˜΅μ…˜μ΄ μ§€μ›λ˜λŠ” 것이닀. 일반적으둜 (200112L 같은) κ·Έ 값이 μ˜΅μ…˜μ„ κΈ°μˆ ν•˜λŠ” POSIX λ¦¬λΉ„μ „μ˜ 연도와 월을 λ‚˜νƒ€λ‚Έλ‹€. glibcμ—μ„œλŠ” POSIX 리비전이 아직 λ°œν–‰λ˜μ§€ μ•Šμ€ λ™μ•ˆμ€ 1 값을 μ‚¬μš©ν•΄ 지원을 ν‘œμ‹œν•œλ‹€. sysconf() μΈμžλŠ” _SC_FOOκ°€ λœλ‹€. μ˜΅μ…˜λ“€μ˜ λͺ©λ‘μ€ posixoptions(7)λ₯Ό 보라.

λ³€μˆ˜λ‚˜ μ œν•œκ°’λ“€μ—λŠ” 보톡 <limits.h>에 μ •μ˜λΌ μžˆμ„ 수 μžˆλŠ” μƒμˆ˜ _FOOλ‚˜ <unistd.h>에 μ •μ˜λΌ μžˆμ„ 수 μžˆλŠ” _POSIX_FOOκ°€ μžˆλ‹€. κ·Έ μ œν•œμ΄ 지정돼 μžˆμ§€ μ•ŠμœΌλ©΄ μƒμˆ˜κ°€ μ •μ˜λ˜μ–΄ μžˆμ§€ μ•Šμ„ 것이닀. μƒμˆ˜κ°€ μ •μ˜λ˜μ–΄ 있으면 보μž₯된 값을 μ£Όλ©° μ‹€μ œλ‘œλŠ” 더 큰 값을 지원할 μˆ˜λ„ μžˆλ‹€. μ‹œμŠ€ν…œμ— 따라 λ‹¬λΌμ§ˆ 수 μžˆλŠ” κ·Έ 값듀을 μ‘μš©μ—μ„œ ν™œμš©ν•˜κ³  μ‹ΆμœΌλ©΄ sysconf() ν˜ΈμΆœμ„ ν•  수 μžˆλ‹€. sysconf() μΈμžλŠ” _SC_FOOκ°€ λœλ‹€.

POSIX.1 λ³€μˆ˜λ“€

λ³€μˆ˜ 이름, 값을 μ§ˆμ˜ν•˜λŠ” 데 μ“°λŠ” sysconf() 인자 이름, 그리고 짧은 μ„€λͺ…이 μ˜¨λ‹€.

λ¨Όμ € POSIX.1 ν˜Έν™˜ 값듀이닀.

ARG_MAX - _SC_ARG_MAX
exec(3) 계열 ν•¨μˆ˜μ— λŒ€ν•œ μΈμžλ“€μ˜ μ΅œλŒ€ 길이. _POSIX_ARG_MAX(4096)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
CHILD_MAX - _SC_CHILD_MAX
μ‚¬μš©μž IDλ‹Ή λ™μ‹œ ν”„λ‘œμ„ΈμŠ€ μ΅œλŒ€ 개수. _POSIX_CHILD_MAX(25)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
HOST_NAME_MAX - _SC_HOST_NAME_MAX
gethostname(2)이 λ°˜ν™˜ν•˜λŠ” 호슀트λͺ…μ˜ μ’…λ£Œμš© 널 λ°”μ΄νŠΈ μ œμ™Έ μ΅œλŒ€ 길이. _POSIX_HOST_NAME_MAX(255)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX
둜그인 μ΄λ¦„μ˜ μ’…λ£Œμš© 널 λ°”μ΄νŠΈ 포함 μ΅œλŒ€ 길이. _POSIX_LOGIN_NAME_MAX(9)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
NGROUPS_MAX - _SC_NGROUPS_MAX
μΆ”κ°€ κ·Έλ£Ή ID의 μ΅œλŒ€ 개수.
클럭 ν‹± - _SC_CLK_TCK
μ΄ˆλ‹Ή 클럭 ν‹± 수. λŒ€μ‘ν•˜λŠ” λ³€μˆ˜λŠ” ꡬ식이 λ˜μ—ˆλ‹€. λ‹Ήμ—°νžˆ CLK_TCKλΌλŠ” μ΄λ¦„μ΄μ—ˆλ‹€. (μ°Έκ³ : CLOCKS_PER_SEC λ§€ν¬λ‘œλŠ” 정보λ₯Ό μ•ˆ μ€€λ‹€. λΆ„λͺ… 1000000일 것이닀.)
OPEN_MAX - _SC_OPEN_MAX
ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λŠ μ‹œμ μ— μ—΄μ–΄ λ‘˜ 수 μžˆλŠ” 파일의 μ΅œλŒ€ 개수. _POSIX_OPEN_MAX(20)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
PAGESIZE - _SC_PAGESIZE
νŽ˜μ΄μ§€μ˜ λ°”μ΄νŠΈ λ‹¨μœ„ 크기. 1보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
PAGE_SIZE - _SC_PAGE_SIZE
PAGESIZE/_SC_PAGESIZEκ³Ό 같은 의미. (POSIXμ—λŠ” PAGESIZE와 PAGE_SIZE λ‘˜ λ‹€ μ •μ˜λΌ μžˆλ‹€.)
RE_DUP_MAX - _SC_RE_DUP_MAX
regexec(3)와 regcomp(3)μ—μ„œ ν—ˆμš©ν•˜λŠ” BRE 반볡 횟수. _POSIX2_RE_DUP_MAX(255)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
STREAM_MAX - _SC_STREAM_MAX
ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λŠ μ‹œμ μ— μ—΄μ–΄ λ‘˜ 수 μžˆλŠ” 슀트림의 μ΅œλŒ€ 개수. μ •μ˜λ˜μ–΄ μžˆλŠ” 경우 ν‘œμ€€ C 맀크둜 FOPEN_MAX와 같은 값이닀. _POSIX_STREAM_MAX(8)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
SYMLOOP_MAX - _SC_SYMLOOP_MAX
κ²°μ • 과정이 ELOOP을 λ°˜ν™˜ν•˜κΈ° 전에 경둜λͺ…에 심볼릭 링크가 λ‚˜μ˜¬ 수 μžˆλŠ” μ΅œλŒ€ 횟수. _POSIX_SYMLOOP_MAX(8)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
TTY_NAME_MAX - _SC_TTY_NAME_MAX
터미널 μž₯치 μ΄λ¦„μ˜ μ’…λ£Œμš© 널 λ°”μ΄νŠΈ 포함 μ΅œλŒ€ 길이. _POSIX_TTY_NAME_MAX(9)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
TZNAME_MAX - _SC_TZNAME_MAX
νƒ€μž„μ‘΄ μ΄λ¦„μ˜ μ΅œλŒ€ λ°”μ΄νŠΈ 수. _POSIX_TZNAME_MAX(6)보닀 μž‘μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
_POSIX_VERSION - _SC_VERSION
POSIX.1 ν‘œμ€€μ΄ 승인된 연도와 월을 YYYYMML ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€. 즉, 199009L 값은 1990λ…„ 9μ›” 리비전을 λ‚˜νƒ€λ‚Έλ‹€.

POSIX.2 λ³€μˆ˜λ“€

λ‹€μŒμ€ μœ ν‹Έλ¦¬ν‹°λ“€μ— μ œν•œκ°’μ„ μ£ΌλŠ” POSIX.2 값듀이닀.

BC_BASE_MAX - _SC_BC_BASE_MAX
bc(1) μœ ν‹Έλ¦¬ν‹°κ°€ λ°›μ•„λ“€μ΄λŠ” obase μ΅œλŒ“κ°’μ„ λ‚˜νƒ€λ‚Έλ‹€.
BC_DIM_MAX - _SC_BC_DIM_MAX
bc(1)κ°€ ν—ˆμš©ν•˜λŠ” λ°°μ—΄ λ‚΄ ν•­λͺ© μ΅œλŒ€ 개수λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
BC_SCALE_MAX - _SC_BC_SCALE_MAX
bc(1)κ°€ ν—ˆμš©ν•˜λŠ” scale μ΅œλŒ“κ°’μ„ λ‚˜νƒ€λ‚Έλ‹€.
BC_STRING_MAX - _SC_BC_STRING_MAX
bc(1)κ°€ λ°›μ•„λ“€μ΄λŠ” λ¬Έμžμ—΄ μ΅œλŒ€ 길이λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX
둜캘 μ •μ˜ νŒŒμΌμ—μ„œ LC_COLLATE order ν‚€μ›Œλ“œ ν•­λͺ©μ— λΆ€μ—¬ν•  수 μžˆλŠ” κ°€μ€‘μΉ˜μ˜ μ΅œλŒ€ 개수λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
expr(1)μ—μ„œ κ΄„ν˜Έ μ•ˆμ— 식을 넣을 수 μžˆλŠ” μ΅œλŒ€ νšŸμˆ˜μ΄λ‹€.
LINE_MAX - _SC_LINE_MAX
ν‘œμ€€ μž…λ ₯μ΄λ‚˜ νŒŒμΌμ—μ„œ μœ ν‹Έλ¦¬ν‹°κ°€ μ½λŠ” μž…λ ₯ ν–‰μ˜ μ΅œλŒ€ 길이. 끝의 κ°œν–‰μ„ μœ„ν•œ 곡간을 ν¬ν•¨ν•œλ‹€.
RE_DUP_MAX - _SC_RE_DUP_MAX
ꡬ간 ν‘œκΈ° \{m,n\} μ‚¬μš© μ‹œ μ •κ·œ ν‘œν˜„μ‹μ˜ μ΅œλŒ€ 반볡 횟수.
POSIX2_VERSION - _SC_2_VERSION
POSIX.2 ν‘œμ€€μ˜ 버전을 YYYYMML ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€.
POSIX2_C_DEV - _SC_2_C_DEV
POSIX.2 C μ–Έμ–΄ 개발 섀비듀을 μ§€μ›ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
POSIX2_FORT_DEV - _SC_2_FORT_DEV
POSIX.2 ν¬νŠΈλž€ 개발 μœ ν‹Έλ¦¬ν‹°λ“€μ„ μ§€μ›ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
POSIX2_FORT_RUN - _SC_2_FORT_RUN
POSIX.2 ν¬νŠΈλž€ λŸ°νƒ€μž„ μœ ν‹Έλ¦¬ν‹°λ“€μ„ μ§€μ›ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
_POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
localedef(1)λ₯Ό ν†΅ν•œ POSIX.2 둜캘 생성을 μ§€μ›ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
POSIX2_SW_DEV - _SC_2_SW_DEV
POSIX.2 μ†Œν”„νŠΈμ›¨μ–΄ 개발 μœ ν‹Έλ¦¬ν‹° μ˜΅μ…˜μ„ μ§€μ›ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

λ‹€μŒ 값듀도 μ‘΄μž¬ν•˜μ§€λ§Œ ν‘œμ€€μ΄ 아닐 수 μžˆλ‹€.

- _SC_PHYS_PAGES
물리적 λ©”λͺ¨λ¦¬μ˜ νŽ˜μ΄μ§€ 수. 이 κ°’κ³Ό _SC_PAGESIZE 값을 κ³±ν•˜λ©΄ λ„˜μΉ  μˆ˜λ„ μžˆμŒμ— μœ μ˜ν•˜λΌ.
- _SC_AVPHYS_PAGES
물리적 λ©”λͺ¨λ¦¬μ˜ ν˜„μž¬ μ‚¬μš© κ°€λŠ₯ν•œ νŽ˜μ΄μ§€ 수.
- _SC_NPROCESSORS_CONF
κ΅¬μ„±λœ ν”„λ‘œμ„Έμ„œ 개수. get_nprocs_conf(3)도 μ°Έκ³ .
- _SC_NPROCESSORS_ONLN
ν˜„μž¬ 온라인인 (μ‚¬μš© κ°€λŠ₯ν•œ) ν”„λ‘œμ„Έμ„œ 개수. get_nprocs_conf(3)도 μ°Έκ³ .

RETURN VALUE

sysconf()의 λ°˜ν™˜ 값은 λ‹€μŒ 쀑 ν•˜λ‚˜μ΄λ‹€.

  • 였λ₯˜ μ‹œ -1을 λ°˜ν™˜ν•˜λ©° 였λ₯˜ 원인을 λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€. (예λ₯Ό λ“€μ–΄ EINVAL둜 name이 μœ νš¨ν•˜μ§€ μ•ŠμŒμ„ λ‚˜νƒ€λ‚Έλ‹€.)

  • name이 μ΅œλŒ€ λ‚΄μ§€ μ΅œμ†Œ μ œν•œμ— ν•΄λ‹Ήν•˜λ©° κ·Έ μ œν•œκ°’μ΄ λΆˆν™•μ •μ΄λ©΄ -1을 λ°˜ν™˜ν•˜λ©° errnoλŠ” λ°”κΎΈμ§€ μ•ŠλŠ”λ‹€. (λΆˆν™•μ • μ œν•œμ„ 였λ₯˜μ™€ κ΅¬λ³„ν•˜λ €λ©΄ 호좜 전에 errnoλ₯Ό 0으둜 μ„€μ •ν•˜κ³ μ„œ -1이 λ°˜ν™˜λ˜μ—ˆμ„ λ•Œ errnoκ°€ 0인지 ν™•μΈν•˜λ©΄ λœλ‹€.)

  • name이 μ˜΅μ…˜μ— ν•΄λ‹Ήν•˜λ©΄ κ·Έ μ˜΅μ…˜μ„ μ§€μ›ν•˜λŠ” 경우 μ–‘μˆ˜ 값을 λ°˜ν™˜ν•˜κ³  κ·Έ μ˜΅μ…˜μ„ μ§€μ›ν•˜μ§€ μ•ŠλŠ” 경우 -1을 λ°˜ν™˜ν•œλ‹€.

  • κ·Έ μ™Έμ˜ κ²½μš°μ— μ˜΅μ…˜ λ‚΄μ§€ μ œν•œμ˜ ν˜„μž¬ 값을 λ°˜ν™˜ν•œλ‹€. 이 값은 μ‘μš©μ„ 컴파일 ν•  λ•Œ <unistd.h>λ‚˜ <limits.h>μ—μ„œ μ‘μš©μ—κ²Œ κΈ°μˆ ν•œ λŒ€μ‘ 값보닀 더 μ œμ•½μ μ΄μ§€ μ•Šμ„ 것이닀.

ERRORS

EINVAL
name이 μœ νš¨ν•˜μ§€ μ•Šλ‹€.

ATTRIBUTES

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

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

CONFORMING TO

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

BUGS

ARG_MAXλ₯Ό μ‚¬μš©ν•˜κΈ°κ°€ μ–΄λ ΅λ‹€. exec(3)λ₯Ό μœ„ν•œ 인자 곡간 쀑 μ–Όλ§ˆλ§ŒνΌμ„ μ‚¬μš©μžμ˜ ν™˜κ²½ λ³€μˆ˜λ“€μ΄ μ†Œλͺ¨ν•˜λŠ”μ§€ λͺ…μ„Έλ˜μ–΄ μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€.

λ°˜ν™˜λ˜λŠ” 일뢀 값듀이 μ•„μ£Ό 클 μˆ˜λ„ μžˆλ‹€. 즉, λ©”λͺ¨λ¦¬ 할당에 쓰기에 μ ν•©ν•˜μ§€ μ•Šλ‹€.

SEE ALSO

bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3), pathconf(3), posixoptions(7)


2019-05-09

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