|
НАЗВАНИЕ
filehdr - заголовок об ектного файла обычного формата
СИНТАКСИС
#include <filehdr.h>
ОПИСАНИЕ
Каждый об ектный файл обычного формата начинается с 20
байтного заголовка. Этот заголовок описывается следующей C-структурой:
struct filehdr { unsigned short f_magic; /* Магическое число */ unsigned short f_nscns; /* Количество секций */ long f_timdat; /* Время и дата создания */ long f_symptr; /* Указатель в файле на таблицу имен */ long f_nsyms; /* Число элем. в табл. имен */ unsigned short f_opthdr; /* Размер вспомогательного заголовка */ unsigned short f_flags; /* Флаги */ };
Поле f_symptr содержит смещение в байтах таблицы имен от начала файла. Это значение может быть использовано как аргумент функции fseek(3S) для позиционирования на таблицу имен в потоке ввода/вывода. Вспомогательный заголовок системы UNIX состоит из 28 байт.
Значение f_timdat получается как результат вызова time(2). Биты поля f_flags, в настоящее время, определены следующим образом:
#define F_RELFLG 0000001 /* Информация о настройке ссылок удалена из файла */ #define F_EXEC 0000002 /* Файл выполняемый */ #define F_LNNO 0000004 /* Информация о номерах строк удалена из файла */ #define F_LSYMS 0000010 /* Информация о локальных именах удалена из файла */ #define F_MINMAL 0000020 /* Минимальный об ектный файл */ #define F_UPDATE 0000040 /* Полностью обновленный файл */ #define F_SWABD 0000100 /* Байты в полусловах переставлены */ #define F_AR16WR 0000200 /* Слово двухбайтное, порядок байт в слове соответствует PDP 11/70 */ #define F_AR32WR 0000400 /* Слово четырехбайтное, порядок байт как у машин серии VAX */ #define F_AR32W 0001000 /* Слово четырехбайтное, порядок байт как у машин серии 3b */ #define F_PATCH 0002000 /* Во вспомогательном заголовке содержится список "заплаток" */
СМ. ТАКЖЕ
time(2), fseek(3S), a.out(4).
|