2012-07-11 9 views
4

jemalloc 메모리 관리자에서 hacker article을 읽는 동안 해커는 malloc이 아닌 malloc (3)을 계속 참조합니다. 나는 이유를 궁금해했다.malloc과 malloc (3)의 차이점은 무엇입니까?

그는 특정 리눅스 malloc 구현을 언급했기 때문에 그렇게합니까? 또는 단순히 unix/linux 매뉴얼 페이지의 section 3 (libary functions)에 설명 된대로 인터페이스를 구현하는 모든 malloc 변종을 참조 할 수 있습니까? 이 옵션은 제 추측입니다. 다른 이유가 있습니까?

해커가 지나치게 구체적인가요? 또는 malloc과 malloc (3) 사이에 차이점이 있습니까?

(3) 부분은 해커 기사에서 나중에 언급되는 다른 문서, 기사 또는 연구에 대한 참조가 아닙니다.

+0

어떤 사람들은 항상 (2) 그런 식으로 기록합니다 (2). – ChrisH

답변

9

malloc(3)malloc이 맨 페이지의 3 절의 일부임을 알 수 있습니다. 섹션 3은 라이브러리 기능이있는 곳입니다. 이것은 syscall이있는 man 페이지의 섹션 2와 반대입니다. malloc(2)은 없습니다. 예를 들어

는 :

$ man man 
:

fwrite 그래서 때로는 fwrite(3)

write 당신이 명령을 실행하면 그래서 때로는 write(2)

로 작성된 콜 같이 작성된 라이브러리 함수

그것은 당신에게 말할 것이다

1 Executable programs or shell commands 
    2 System calls (functions provided by the kernel) 
    3 Library calls (functions within program libraries) 
    4 Special files (usually found in /dev) 
    5 File formats and conventions eg /etc/passwd 
    6 Games 
    7 Miscellaneous (including macro packages and convenâ 
     tions), e.g. man(7), groff(7) 
    8 System administration commands (usually only for root) 
    9 Kernel routines [Non standard] 
+0

+1 상세하고 구체적인 답변. –

1

저자가 단순히 매우 구체적 인 것처럼 보입니다.

맨 페이지의 섹션 3에 대한 참조를 지정하는 것은 종종 예를 들어. 동일한 기능의 쉘 버전. 예를 들어, printf (1)와 printf (3)의 경우 man 1 printf입니다.

그러나 malloc 문서의 경우는 섹션에 존재해야에

3.

+0

나는 그가 malloc의 POSIX 정의를 언급하고 있다고 생각한다. 리눅스에만 국한된 것은 아닙니다. –

3

서문 : 내 유닉스가 약합니다.

저는 이것이 단순히 3 절 라이브러리에 대한 참조 일뿐입니다.

등의 malloc (3) 및 패치 등의
참조 (전문 용어 파일에서) (1) 유닉스 시설 (예 : 패치 (1), 실제로 유즈넷에 분산 오픈 소스 일부있는)에 있습니다.