[c/c++] malloc,new 등의 함수 내부 구현을 볼수있는 방법..

gyxor의 이미지

예를들어 c에서 헤더파일중에 stdlib.h 를 보게 되면

그중에 malloc함수의 선언! 부분만 있고 정의! 내용은 찾을 수가 없습니다.

[이부분이 이해가 안됩니다. 실제 정의 내용은 어디에 있는지 궁금합니다.]

사실 사용에 대한부분은 알고있지만

단순히 함수의 사용방법에 관한 질문이 아닙니다~ 내부구조가 궁금합니다.

내부구현 자체가 공개가 안된다면

gcc라든지 다른 컴파일러를 예로 들어주셔도 좋습니다.

여러가지 라이브러리함수 들의 내부구현을 볼수 있는방법은 없나요?

고수님들의 답변을 부탁드립니다.

eminency의 이미지

없는게 당연합니다...
헤더 파일은 일종의 인터페이스로써 라이브러리에서 어떤 함수를 지원하는지 정도만 표시하는 역할을 하는 것 뿐입니다. malloc의 실제 실행부분은 보통 /usr/lib/libc.a 또는 libc.so에 들어있겠죠. 하지만 이것은 컴파일된 이미지이니 C코드는 물론 볼 수 없구요.

리눅스의 glibc는 GPL에 따라 -당연히!- 공개되어 있구요, 다음 주소에서 받을 수 있습니다.

http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.gz

크고 복잡한 소스니 잘 찾아보시길... ㅡ.ㅡ;;

노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5