2. Gets its euid and uid.
3. Transforms old-style command line argument syntax into new-style syntax.
4. Processes the command line arguments.
5. Sets up signal handling.
6. Initializes the fifo.
7. Initializes any remote connection.
8. Sets back the real UID.
9. Opens the archive.
10. Initializes data structures.
11. Checks for multi-volume format; logs an error and exits if so because it is unsupported.
12. Initializes device macro handling.
13. Initializes extended headers buffer.
14. Initializes UID and GID handling.
15. Gets the working directory.
16. Gets the current time.
17. Initializes the date name.
18. Initializes the volume header.
19. Checks for a FIFO; forks and runs operation if so.
20. Checks for a copy flag; copies the archive if so.
21. Checks for TOC, create, or extract flags.
22. If a list file arguments was passed, opens that and uses it as the list of files to process.
23. If no file list was given, does a find for each of the command line arguments.
24. Closes the pattern.
25. If the TOC flag was given, lists the files.
26. If doing an extract, changes to the change dir argument, if present, and extracts the files,
27. If doing a diff, shows the file differences.
28. Closes the pattern.
29. Performs tape manipulation.
30. If it is a create, creates the archive.
31. Checks archive links.
32. Closes the archive.
33. Prints any statistics requested.
34. Checks for errors and prints error codes.
35. Flushes stdout if on a terminal.
36. Writes out dump dates if necessary.
37. Exits.
207