在jemalloc内存管理器上读取hacker article时,黑客一直指的是malloc(3),而不是malloc。我想知道为什么。
他是否这样做是因为它引用了特定的linux malloc实现?或者只是引用所有malloc变体,实现unix / linux手册页的section 3 (libary functions)中描述的接口?这个选项是我的猜测,想要确定。有不同的原因吗?
那么,黑客是否过于具体?或者malloc和malloc(3)之间有区别吗?
(3)部分不是对黑客文章后面提到的其他文档,文章或研究的引用。
答案 0 :(得分:9)
malloc(3)
只是提示malloc
是手册页第3部分的一部分。第3节是库函数的位置。这与系统调用的第2部分相反。没有malloc(2)
。
例如:
fwrite
是一个库函数,有时写成fwrite(3)
write
是一个系统调用,有时写成write(2)
如果您运行命令:
$ man man
它会告诉你
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]
答案 1 :(得分:3)
前言:我的unix很弱。
我认为它只是对第3节库的引用。
(来自行话文件)
诸如malloc(3)和patch(1)之类的引用属于Unix工具(其中一些,例如patch(1),实际上是通过Usenet分布的开源)。
答案 2 :(得分:1)
看起来作者只是非常具体。
如果可能存在例如,则指定对手册页的第3部分的引用通常是有用的。 shell版本功能相同。例如,man 1 printf
用于printf(1)与printf(3)。
但是在malloc
的情况下,文档只应存在于第3节中。