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