filehdr(4)
NAME
filehdr − file header for common object files
SYNOPSIS
#include <filehdr.h>
DESCRIPTION
Every common object file begins with a 20-byte header. The following C struct declaration is used:
struct filehdr
{
unsigned shortf_magic ;/∗ magic number ∗/
unsigned shortf_nscns ;/∗ number of sections ∗/
longf_timdat ;/∗ time & date stamp ∗/
longf_symptr ;/∗ file ptr to symtab ∗/
longf_nsyms ;/∗ number of symtab entries ∗/
unsigned shortf_opthdr ;/∗ sizeof(opt and header) ∗/
unsigned shortf_flags ;/∗ flags ∗/
};
f_symptr is the byte offset into the file at which the symbol table can be found. Its value can be used as the offset in fseek(3S) to position an I/O stream to the symbol table. The UNIX system optional header is 28 bytes. The valid magic numbers are given below:
| #define | I386MAGIC | 0514 | /∗ i386 Computer ∗/ |
| #define | WE32MAGIC | 0560 | /∗ 3B2, 3B5, and 3B15 computers ∗/ |
| #define | N3BMAGIC | 0550 | /∗ 3B20 computer ∗/ |
| #define | NTVMAGIC | 0551 | /∗ 3B20 computer ∗/ |
| #define | VAXWRMAGIC | 0570 | /∗ VAX writable text segments ∗/ |
| #define | VAXROMAGIC | 0575 | /∗ VAX read only sharable |
| text segments ∗/ |
The value in f_timdat is obtained from the time(2) system call. Flag bits currently defined are:
| #define | F_RELFLG | 0000001 | /∗ relocation entries stripped ∗/ |
| #define | F_EXEC | 0000002 | /∗ file is executable ∗/ |
| #define | F_LNNO | 0000004 | /∗ line numbers stripped ∗/ |
| #define | F_LSYMS | 0000010 | /∗ local symbols stripped ∗/ |
| #define | F_AR16WR | 0000200 | /∗ 16-bit DEC host ∗/ |
| #define | F_AR32WR | 0000400 | /∗ 32-bit DEC host ∗/ |
| #define | F_AR32W | 0001000 | /∗ non-DEC host ∗/ |
| #define | F_BM32ID | 0160000 | /∗ WE32000 family ID field ∗/ |
| #define | F_BM32B | 0020000 | /∗ file contains WE 32100 code ∗/ |
| #define | F_BM32MAU | 0040000 | /∗ file reqs MAU to execute ∗/ |
| #define | F_BM32RST | 0010000 | /∗ this object file contains restore |
| work around [3B5/3B2 only] ∗/ |
SEE ALSO
SunOS 5.4 — Last change: 3 Jul 1990