리눅스 개발관련해서 질문드립니다.
이제 갓 프로그래밍의 기초를 쌓으려는 열정넘치는 사람입니다.
사용하는 용어가 표준이 아니면 지적바로 해주세요.
일단, 이 글을 통해 질문하고자 하는 것은 바로
함수입니다. 정확히 제가 무엇을 모르는지를 인지하지 못하여 글이 길어지는 점 양해부탁드립니다.
표준라이브러리의 printf()를 사용할 때, 제가 printf()가 궁금해서
찾아봤습니다.
먼저, stdio.h 파일에는
extern int printf (const char *__restrict __format, ...); 라고 정의되어있네요.
라이브러리에서 사용할 수 있게끔 정의부(?)가 적혀져 있다고 생각하면 될까요?
그리고 /usr/include/i386-linux-gnu/bits/stdio2.h 이라는 파일에는
printf (const char *__restrict __fmt, ...)
{
return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
}
라고 정의되어 있습니다. 가장 먼저 궁금한 것은 변수명이나 함수명 앞에 __(under bar)를 붙이는 특별한
이유가 있습니까? 두 번째는, 저는 printf()의 구현부(?) 즉, 함수가 어떻게 동작하는지 알 수 있는 부분을
보고싶은데 이 것은 라이브러리 파일에 들어있습니까?(볼 수가 없습니까?)
마지막으로 위 두 printf()가 동일한 printf()인 것입니까?
glibc에 들어있습니다. gcc 통해 컴파일할 때
glibc에 들어있습니다.
gcc 통해 컴파일할 때 자동으로 링크 되기 때문에 사용 가능합니다.
다운로드 : git clone git://sourceware.org/git/glibc.git
소곤소곤
댓글 달기