FILEHDR(4) FILEHDR(4) НАЗВАНИЕ filehdr - заголовок объектного файла обычного формата СИНТАКСИС |#include ОПИСАНИЕ Каждый объектный файл обычного формата начинается с 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).@