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

NAME

etext, edata, end - ν”„λ‘œκ·Έλž¨ μ„Έκ·Έλ¨ΌνŠΈλ“€μ˜ 끝

SYNOPSIS

extern etext;
extern edata;
extern end;

DESCRIPTION

이 μ‹¬λ³Όλ“€μ˜ μ£Όμ†ŒλŠ” λ‹€μ–‘ν•œ ν”„λ‘œκ·Έλž¨ μ„Έκ·Έλ¨ΌνŠΈλ“€μ˜ 끝을 λ‚˜νƒ€λ‚Έλ‹€.

etext
ν…μŠ€νŠΈ μ„Έκ·Έλ¨ΌνŠΈ(ν”„λ‘œκ·Έλž¨ μ½”λ“œ)의 끝 λ‹€μŒμ˜ 첫 μ£Όμ†Œμ΄λ‹€.
edata
μ΄ˆκΈ°ν™” 된 데이터 μ„Έκ·Έλ¨ΌνŠΈμ˜ 끝 λ‹€μŒμ˜ 첫 μ£Όμ†Œμ΄λ‹€.
end
(BSS μ„Έκ·Έλ¨ΌνŠΈλΌκ³ λ„ ν•˜λŠ”) λΉ„μ΄ˆκΈ°ν™” 데이터 μ„Έκ·Έλ¨ΌνŠΈμ˜ 끝 λ‹€μŒμ˜ 첫 μ£Όμ†Œμ΄λ‹€.

CONFORMING TO

λŒ€λΆ€λΆ„μ˜ μœ λ‹‰μŠ€ μ‹œμŠ€ν…œμ—μ„œ μ˜€λž«λ™μ•ˆ 이 심볼듀을 μ œκ³΅ν–ˆμ§€λ§Œ ν‘œμ€€ν™”λ˜μ–΄ μžˆμ§€λŠ” μ•Šλ‹€. μ‘°μ‹¬ν•΄μ„œ μ‚¬μš©ν•˜λΌ.

NOTES

ν”„λ‘œκ·Έλž¨μ—μ„œ 이 심볼듀을 λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•΄μ•Ό ν•œλ‹€. μ–΄λ–€ 헀더 νŒŒμΌμ—λ„ μ •μ˜λ˜μ–΄ μžˆμ§€ μ•Šλ‹€.

일뢀 μ‹œμŠ€ν…œμ—μ„œλŠ” 이 μ‹¬λ³Όλ“€μ˜ 이름 μ•žμ— 밑쀄이 λΆ™μ–΄μ„œ _etext, _edata, _end이닀. λ¦¬λˆ…μŠ€μ—μ„œ 컴파일 ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—κ²ŒλŠ” 이 심볼듀도 μ •μ˜λ˜μ–΄ μžˆλ‹€.

ν”„λ‘œκ·Έλž¨ 싀행이 μ‹œμž‘λ  λ•Œ ν”„λ‘œκ·Έλž¨ λ‹¨μ ˆμ (break)은 &end 근처 μ–΄λ”˜κ°€(μ•„λ§ˆ λ‹€μŒ νŽ˜μ΄μ§€μ˜ μ‹œμž‘μ )일 것이닀. ν•˜μ§€λ§Œ brk(2)λ‚˜ malloc(3)을 톡해 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜λ©΄μ„œ κ·Έ λ‹¨μ ˆμ μ΄ λ°”λ€Œκ²Œ λœλ‹€. 인자 0으둜 sbrk(2)λ₯Ό μ‚¬μš©ν•˜λ©΄ ν˜„μž¬μ˜ ν”„λ‘œκ·Έλž¨ λ‹¨μ ˆμ  값을 μ•Œμ•„λ‚Ό 수 μžˆλ‹€.

EXAMPLE

μ‹€ν–‰ μ‹œ μ•„λž˜ ν”„λ‘œκ·Έλž¨μ€ λ‹€μŒκ³Ό 같은 좜λ ₯을 λ‚΄λ†“λŠ”λ‹€.

$ ./a.out
First address past:
    program text (etext)       0x8048568
    initialized data (edata)   0x804a01c
    uninitialized data (end)   0x804a024

ν”„λ‘œκ·Έλž¨ μ†ŒμŠ€

#include <stdio.h>
#include <stdlib.h>

extern char etext, edata, end; /* 심볼듀에 λ­”κ°€ νƒ€μž…μ„ μ€˜μ•Ό ν•œλ‹€.
                                  κ·Έλž˜μ•Ό "gcc -Wall"이 μ‘°μš©ν•΄μ§„λ‹€. */

int
main(int argc, char *argv[])
{
    printf("First address past:\n");
    printf("    program text (etext)      %10p\n", &etext);
    printf("    initialized data (edata)  %10p\n", &edata);
    printf("    uninitialized data (end)  %10p\n", &end);

    exit(EXIT_SUCCESS);
}

SEE ALSO

objdump(1), readelf(1), sbrk(2), elf(5)


2019-03-06

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