我想知道是否有一个 C 函数可以用来获取另一个可执行文件的数据段大小?例如,像size
Linux 中的实用程序一样工作的东西?的输出size
包括我所追求的信息,数据段大小;例如,它可能看起来像:
text data bss dec hex filename
294880 81920 11592 388392 5ed28 ranlib
我想知道是否有一个 C 函数可以用来获取另一个可执行文件的数据段大小?例如,像size
Linux 中的实用程序一样工作的东西?的输出size
包括我所追求的信息,数据段大小;例如,它可能看起来像:
text data bss dec hex filename
294880 81920 11592 388392 5ed28 ranlib
使用elf.h
你有你需要的所有数据结构。跟随主 ELF 头到程序头,然后遍历它们。具有写入权限的PT_LOAD
标头是数据段。
看起来没有单一的函数来获取它,但是大小的源代码非常小(~500 行)。你要找的是这里吗? https://github.com/pathscale/binutils/blob/master/binutils/size.c