*본 글은 https://www.programering.com/a/MjMycDMwATQ.html의 포스팅을 번역 한 뒤 직접 실험하여 부가설명을 제가 붙였습니다. 이상한 부분은 지적 부탁드리겠습니다. printf함수 호출 과정 추적하기 우리는 위의 과정들을 통해 printf(“Hello World\n”)가 puts 함수로 변환됐음을 알 수 있습니다. 또 우린 puts가 libc.a 에 포함되어 있음을 알 수 있었습니다. 그리고 elf 파일인 ioputs.o에 puts와 _IO_puts 가 저장됨을 알 수 있었습니다. 그럼 printf 의 call trace를 할 수 있을까요? 다시말해 printf 함수는 순서대로 어떻게 작동할까요? 마지막으로 리눅스에선 커널의 int 0x80번지(커널모드를 진입하기 위한..
*본 글은 https://www.programering.com/a/MjMycDMwATQ.html의 포스팅을 번역 한 뒤 직접 실험하여 부가설명을 제가 붙였습니다. 이상한 부분은 지적 부탁드리겠습니다. printf의 숨겨진 뒷 이야기. 프로그래밍 언어를 말할 때, C언어에서 아마도 제일 간단하고 많이 알려진 코드는 Hello World일 것 입니다. printf라는 간단한 함수는 그 자체로 완벽하며 명료합니다. 하지만 그 뒤에서는 무슨일이 일어나고 있을까요? 아마 대부분 사람들은 이를 신경쓰지 않을것입니다. 그래서 우린 이 뒷이야기를 한번 논의해 보려합니다. 빨간배경은 명령어 라인이며 파란배경은 소스 코드 혹은 코드의 산출물에 해당합니다.( o,as 파일 등) 아래의 소스코드는 컴파일러를 통해 운영체제가 ..
- Total
- Today
- Yesterday
- 문자열
- 중국여행
- 카카오 공채
- peram jam
- link
- 사천
- compile
- 드럼
- Codejam
- python
- 정규표현식
- yiruma
- C++
- Spring
- 이루마
- cpp
- Pointer
- Algorithm
- C language
- 악보
- regex
- 피아노
- linux
- kernerl
- 코드잼
- printf
- 알고리즘
- STL
- 여행
- 중국
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |