Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.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
是否有一个C函数来获取文件数据段的大小?_C_Linux_Data Segment - Fatal编程技术网

是否有一个C函数来获取文件数据段的大小?

是否有一个C函数来获取文件数据段的大小?,c,linux,data-segment,C,Linux,Data Segment,我想知道是否有一个C函数可以用来获取另一个可执行文件的数据段大小?例如,像Linux中的size实用程序那样工作的东西?size的输出包括我要查找的信息、数据段大小;例如,它可能看起来像: text data bss dec hex filename 294880 81920 11592 388392 5ed28 ranlib 看起来并不是只有一个函数可以得到它,但是源代码的大小非常小,只有500行。你在这里找的是什么? 使用elf.h,您可

我想知道是否有一个C函数可以用来获取另一个可执行文件的数据段大小?例如,像Linux中的size实用程序那样工作的东西?size的输出包括我要查找的信息、数据段大小;例如,它可能看起来像:

text    data    bss     dec     hex     filename
294880  81920   11592   388392  5ed28   ranlib

看起来并不是只有一个函数可以得到它,但是源代码的大小非常小,只有500行。你在这里找的是什么?

使用elf.h,您可以获得所需的所有数据结构。跟随主ELF头到程序头,然后遍历它们。具有写入权限的PT_加载头是/是数据段。

从man elf开始-这将引导您走向正确的方向。检查Binutils'。