Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
malloc和malloc(3)之间的区别是什么?_C_Manpage - Fatal编程技术网

malloc和malloc(3)之间的区别是什么?

malloc和malloc(3)之间的区别是什么?,c,manpage,C,Manpage,当在jemalloc内存管理器上读取a时,黑客不断引用malloc(3),而不是malloc。我想知道为什么 他这样做是因为它引用了一个特定的LinuxMalloc实现吗?或者简单地参考所有malloc变体,它们实现了unix/linux手册第页第页所述的接口?这是我的猜测,我想确定一下。还有其他原因吗 那么,黑客是不是过于具体了?或者malloc和malloc(3)之间有区别吗 (3)部分不是对黑客文章后面提到的其他文档、文章或研究的引用。malloc(3)只是暗示malloc是手册第3部分的

当在jemalloc内存管理器上读取a时,黑客不断引用malloc(3),而不是malloc。我想知道为什么

他这样做是因为它引用了一个特定的LinuxMalloc实现吗?或者简单地参考所有malloc变体,它们实现了unix/linux手册第页第页所述的接口?这是我的猜测,我想确定一下。还有其他原因吗

那么,黑客是不是过于具体了?或者malloc和malloc(3)之间有区别吗

(3)部分不是对黑客文章后面提到的其他文档、文章或研究的引用。

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]

看来作者只是非常具体

如果可能存在相同函数的shell版本,则指定手册页第3节的参考通常很有用。例如,printf(1)与printf(3)的
man1printf


但是对于malloc,文档应该只存在于第3节。

前言:我的unix很弱

我相信这只是参考第3节图书馆

(来自行话文件)

像malloc(3)和patch(1)这样的引用是指Unix设施(其中一些,比如patch(1),实际上是通过Usenet发布的开放源码)。

有些人一直这样写(2),因为它清楚地表明了(1)呃他们试图统计什么(2)e。我相信他指的是POSIX对malloc的定义。这不仅仅是Linux特有的。