FILEHDR(4)

НАЗВАНИЕ
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).