a.out is a file format formerly commonly used for executables, object code, shared libraries and core dumps on Unix-like systems. The name "a.out" stands for "assembler output"; it is derived from the default file name for the output of Unix assemblers.
Most Unix-like systems have replaced the a.out format with ELF.
An a.out file consists of a single header followed by the executable image's text (code) and data sections, relocation information, a symbol table and a string table (containing symbol names).
The header starts with an identifier field (denoting whether the file is an executable or a core dump), followed by a series of lengths and addresses. The size and endianness of the header fields is, unfortunately, not very well-specified and architecture-dependent.