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

NAME

pthread_attr_setguardsize, pthread_attr_getguardsize - μŠ€λ ˆλ“œ 속성 객체의 방호 ꡬ역 크기 μ„€μ •ν•˜κΈ°/μ–»κΈ°

SYNOPSIS

#include <pthread.h>

int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);

-pthread둜 컴파일 및 링크.

DESCRIPTION

pthread_attr_setguardsize() ν•¨μˆ˜λŠ” attr이 κ°€λ¦¬ν‚€λŠ” μŠ€λ ˆλ“œ 속성 객체의 방호 ꡬ역 크기 속성을 guardsize에 μ§€μ •ν•œ κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€.

guardsizeκ°€ 0보닀 크면 attr을 μ΄μš©ν•΄ μƒμ„±ν•˜λŠ” μƒˆ μŠ€λ ˆλ“œ 각각에 λŒ€ν•΄ μ‹œμŠ€ν…œμ—μ„œ μŠ€λ ˆλ“œ μŠ€νƒ 끝에 μ΅œμ†Œ guardsize λ°”μ΄νŠΈμ˜ μ˜μ—­μ„ μΆ”κ°€λ‘œ ν• λ‹Ήν•΄μ„œ μŠ€νƒμ˜ 방호 ꡬ역 역할을 ν•˜κ²Œ ν•œλ‹€. (ν•˜μ§€λ§Œ BUGS μ°Έκ³ .)

guardsizeκ°€ 0이면 attr둜 μƒμ„±ν•˜λŠ” μƒˆ μŠ€λ ˆλ“œμ— 방호 ꡬ역이 μ—†κ²Œ λœλ‹€.

κΈ°λ³Έ 방호 ꡬ역 ν¬κΈ°λŠ” μ‹œμŠ€ν…œ νŽ˜μ΄μ§€ 크기와 κ°™λ‹€.

attr에 (pthread_attr_setstack(3)μ΄λ‚˜ pthread_attr_setstackaddr(3)둜) μŠ€νƒ μ£Όμ†Œ 속성이 μ„€μ •λ˜μ–΄ μŠ€λ ˆλ“œμ˜ μŠ€νƒμ„ ν˜ΈμΆœμžκ°€ ν• λ‹Ήν•˜λŠ” κ²½μš°μ—λŠ” 방호 ꡬ역 크기 속성을 λ¬΄μ‹œν•œλ‹€. (즉 μ‹œμŠ€ν…œμ—μ„œ μ–΄λ–€ 방호 ꡬ역도 λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€.) μ‘μš©μ΄ μŠ€νƒ μ˜€λ²„ν”Œλ‘œμš° 처리λ₯Ό μ±…μž„μ§„λ‹€. (mprotect(2)λ₯Ό μ΄μš©ν•΄ ν• λ‹Ήν•œ μŠ€νƒ 끝에 방호 ꡬ역을 μˆ˜λ™μœΌλ‘œ μ§€μ •ν•  수 μžˆμ„ 것이닀.)

pthread_attr_getguardsize() ν•¨μˆ˜λŠ” attr이 κ°€λ¦¬ν‚€λŠ” μŠ€λ ˆλ“œ 속성 객체의 방호 ꡬ역 크기 속성을 guardsizeκ°€ κ°€λ¦¬ν‚€λŠ” λ²„νΌλ‘œ λ°˜ν™˜ν•œλ‹€.

RETURN VALUE

성곡 μ‹œ 이 ν•¨μˆ˜λ“€μ€ 0을 λ°˜ν™˜ν•œλ‹€. 였λ₯˜ μ‹œ 0 μ•„λ‹Œ 였λ₯˜ 번호λ₯Ό λ°˜ν™˜ν•œλ‹€.

ERRORS

POSIX.1μ—μ„œλŠ” attrμ΄λ‚˜ guardsizeκ°€ μœ νš¨ν•˜μ§€ μ•Šμ€ 경우 EINVAL 였λ₯˜λ₯Ό 적고 μžˆλ‹€. λ¦¬λˆ…μŠ€μ—μ„œλŠ” 이 ν•¨μˆ˜λ“€μ΄ 항상 μ„±κ³΅ν•œλ‹€. (κ·Έλ ‡κΈ°λŠ” ν•˜μ§€λ§Œ 이식 κ°€λŠ₯ν•˜κ³  미래λ₯Ό λŒ€λΉ„ν•˜λŠ” μ‘μš©μ—μ„œλŠ” κ°€λŠ₯ν•œ 였λ₯˜ λ°˜ν™˜μ„ μ²˜λ¦¬ν•΄μ•Ό ν•  것이닀.)

VERSIONS

glibc 버전 2.1λΆ€ν„° 이 ν•¨μˆ˜λ“€μ„ μ œκ³΅ν•œλ‹€.

ATTRIBUTES

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

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

CONFORMING TO

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

NOTES

방호 ꡬ역은 읽기 및 μ“°κΈ° 접근을 막도둝 보호된 가상 λ©”λͺ¨λ¦¬ νŽ˜μ΄μ§€λ“€λ‘œ 이뀄진닀. μŠ€λ ˆλ“œκ°€ κ·Έ 방호 κ΅¬μ—­μœΌλ‘œ μŠ€νƒμ„ λ„˜μΉ˜κ²Œ ν•˜λ©΄ λŒ€λΆ€λΆ„μ˜ ν•˜λ“œμ›¨μ–΄ μ•„ν‚€ν…μ²˜μ—μ„œ μ˜€λ²„ν”Œλ‘œμš°λ₯Ό μ•Œλ¦¬λŠ” SIGSEGV μ‹œκ·Έλ„μ„ λ°›λŠ”λ‹€. 방호 ꡬ역은 νŽ˜μ΄μ§€ κ²½κ³„μ—μ„œ μ‹œμž‘ν•˜λ©° μŠ€λ ˆλ“œ 생성 μ‹œμ— λ‚΄λΆ€μ μœΌλ‘œ 방호 ꡬ역 크기λ₯Ό μ‹œμŠ€ν…œ νŽ˜μ΄μ§€ 크기둜 올림 ν•œλ‹€. (κ·Έλ ‡κ²Œ 해도 pthread_attr_getguardsize()λŠ” pthread_attr_setguardsize()둜 μ„€μ •ν–ˆλ˜ 방호 ꡬ역 크기λ₯Ό λ°˜ν™˜ν•œλ‹€.)

μŠ€λ ˆλ“œλ₯Ό 많이 μƒμ„±ν•˜λ©° μŠ€νƒ μ˜€λ²„ν”Œλ‘œμš°κ°€ μ ˆλŒ€ λ°œμƒν•˜μ§€ μ•ŠλŠ” κ±Έ μ•„λŠ” μ‘μš©μ—μ„œλŠ” 방호 ꡬ역 크기λ₯Ό 0으둜 μ„€μ •ν•˜λŠ” 게 λ©”λͺ¨λ¦¬ μ ˆμ•½μ— 도움이 될 수 μžˆλ‹€.

μŠ€λ ˆλ“œκ°€ μŠ€νƒμ— 큰 자료 ꡬ쑰λ₯Ό ν• λ‹Ήν•˜λŠ” 경우 μŠ€νƒ μ˜€λ²„ν”Œλ‘œμš° 탐지λ₯Ό μœ„ν•΄ 기본보닀 큰 방호 ꡬ역 크기λ₯Ό νƒν•˜λŠ” 것이 ν•„μš”ν•  수 μžˆλ‹€.

BUGS

glibc 2.8 κΈ°μ€€μœΌλ‘œ NPTL μŠ€λ ˆλ”© κ΅¬ν˜„μ—μ„œλŠ” POSIX.1의 μš”κ΅¬λŒ€λ‘œ μŠ€νƒ 끝에 μΆ”κ°€ 곡간을 ν• λ‹Ήν•˜μ§€ μ•Šκ³  μŠ€νƒ ν• λ‹Ή 크기에 방호 ꡬ역 크기λ₯Ό ν¬ν•¨ν•œλ‹€. (κ·Έλž˜μ„œ 방호 ꡬ역 크기 값이 μ•„μ£Ό μ»€μ„œ μ‹€μ œ μŠ€νƒμ„ μœ„ν•œ 곡간이 μ—†λŠ” 경우 pthread_create(3)μ—μ„œ EINVAL 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλ‹€.)

ꡬ식 LinuxThreads κ΅¬ν˜„μ—μ„œλŠ” μ˜¬λ°”λ‘œ μŠ€νƒ 끝에 방호 ꡬ역을 μœ„ν•œ μΆ”κ°€ 곡간을 ν• λ‹Ήν•œλ‹€.

EXAMPLE

pthread_getattr_np(3) μ°Έκ³ .

SEE ALSO

mmap(2), mprotect(2), pthread_attr_init(3), pthread_attr_setstack(3), pthread_attr_setstacksize(3), pthread_create(3), pthreads(7)


2017-09-15

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