Есть ли функция C, чтобы получить размер сегмента данных файла? - PullRequest
0 голосов
/ 30 октября 2019

Мне интересно, есть ли функция C, которую можно использовать для получения размера сегмента данных другого исполняемого файла? Например, что-то, что работает как утилита size в Linux? Вывод size включает в себя информацию, которую я ищу, размер сегмента данных;например, это может выглядеть так:

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

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Используя elf.h, вы получаете все необходимые вам структуры данных. Следуйте за основным заголовком ELF к заголовкам программы, затем итерируйте их. Заголовок (и) PT_LOAD с разрешением на запись является / являются сегментом (ами) данных.

0 голосов
/ 30 октября 2019

Не похоже, что есть единственная функция для ее получения, но исходный код размера довольно мал (~ 500 строк). Это то, что вы ищете здесь? https://github.com/pathscale/binutils/blob/master/binutils/size.c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...