我编写了一个很小的hello world程序,并在它的二进制文件上运行strace,它列出了在执行我的Hello_world程序时调用的所有系统调用。
strace ./a.out
execve("./a.out", ["./a.out"], [/* 40 vars */]) = 0
brk(NULL) = 0xb7d000brk(NULL)用于查找当前DSS的上限,但我的问题是,谁想知道这一点,为什么?
edit1:我的程序中没有malloc
发布于 2019-09-13 18:03:25
无论您是否使用malloc(),很可能都是由C运行时库准备堆的。为此,它查询决策支持系统的当前大小并适当地设置控制结构,以便能够在调用第一个malloc()时立即采取行动。
发布于 2019-09-13 17:58:17
https://stackoverflow.com/questions/57918344
复制相似问题