Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ar(1) — UTek 3.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cpio(1)

file(1)

ld(1)

make(1)

nm(1)

ranlib(1)

fgetarhdr(3c)

getarhdr(3c)

ar(5)



AR(1)                   COMMAND REFERENCE                   AR(1)



NAME
     ar - archive and library maintainer

SYNOPSIS
     ar (dmpqrtx)[abcfilnosuv [ member ] ] afile [ name... ]

DESCRIPTION
     Ar maintains groups of files combined into a single archive
     file.  Its main use is to create and update library files as
     used by the loader.  It can be used, though, for any similar
     purpose.

     Key is one character from the set dmpqrtx, optionally
     concatenated with one or more of abcfilnosuv (flag). In
     cases where the flag is a positioning character, such as a
     or b, the member argument is the name of the archive member
     which is used as a relative position.  The afile argument is
     the archive file.  The name arguments are constituent files
     in the archive file.

     If the key given is d, m, q, or r, or if the s flag is
     given, the symbol definition table is added or modified by
     executing ranlib(1). This can be turned off with the f flag.

     It is very important to note that the archive format used on
     this system is not the same as on other systems. See the
     manual page for ar(5) for information on the format, and see
     the second example below for the method of converting
     archives to a portable format.

OPTIONS
     Keys

     d  Delete the named files from the archive file.

     m  Move the named files to the end of the archive.  If a
        positioning character is present, then the member
        argument must be present, which, as in r, specifies where
        the files are to be moved.

     p  Print the named files in the archive.

     q  Quickly append the named files to the end of the archive
        file.  Optional positioning characters are invalid.  The
        command does not check whether the added members are
        already in the archive.  The q key is useful only to
        avoid quadratic behavior when creating a large archive
        piece-by-piece.

     r  Replace the named files in the archive file.  If the
        optional character u is used with r, then only those
        files with `last-modified' dates later than the archive



Printed 5/12/88                                                 1





AR(1)                   COMMAND REFERENCE                   AR(1)



        files are replaced.  If an optional positioning character
        from the set abi is used, then the flag argument must be
        present and specifies that new files are to be placed
        after (a) or before (b or i) flag.  Otherwise new files
        are placed at the end.

     t  Print a table of contents of the archive file.  If no
        names are given, all files in the archive are tabled.  If
        names are given, only those files are tabled.

     x  Extract the named files.  If no names are given, all
        files in the archive are extracted.  In neither case does
        x alter the archive file. Normally the `last-modified'
        date of each extracted file is the date when it is
        extracted. However, if o is used, the `last-modified'
        date is reset to the date recorded in the archive.

     Position Names and Flags

     a  Position after. The name following the options list is
        the name of the archive member after which the given file
        is to be positioned.  See the descriptions for the keys m
        and r, which are the only options for which the a
        position name is valid.

     b  Position before. The name following the options list is
        the name of the archive member before which the given
        file is to be positioned.  See the descriptions for the
        keys m and r, which are the only options for which the b
        position name is valid.

     c  Create.  Normally ar will create afile when it needs to.
        The create flag suppresses the normal message that is
        produced when afile is created.

     f  Prevent symbol definition table creation. This is the
        opposite of the s flag. If both f and s are given, the s
        is ignored.

     i  Insert before. This is a synonym for the b position name.

     l  Local.  Normally ar places its temporary files in the
        directory /tmp. This flag causes them to be placed in the
        local directory.

     n  Normal format. This version of ar does not truncate names
        longer that 15 characters for insertion into the archive.
        In order to use an archive with software which does not
        support this archive format, the n flag must be used to
        force truncation of names.

     o  Preserve original date. This flag is used with the key x



Printed 5/12/88                                                 2





AR(1)                   COMMAND REFERENCE                   AR(1)



        and causes extracted files to have the last-modified date
        reset to the date recorded in the archive file.

     s  Create or update symbol definition table. This flag
        causes the command ranlib to be executed with the archive
        name as the argument.

     u  Replace updated files. This flag is used with the r key,
        and causes only those files with modification dates newer
        than the corresponding member in the archive.

     v  Verbose.  With the verbose flag, ar gives a file-by-file
        description of the making of a new archive file from the
        old archive and the constituent files.  When used with t,
        it gives a long listing of all information about the
        files.  When used with p, it precedes each file with a
        name.  Otherwise, each file is preceded by the key letter
        of the operation done.  For example, r - filename (for
        replace) and x - filename (for extract).

EXAMPLES
     The following invocation of this command:

          ar x utils move copy remove

     extracts the files move, copy, and remove from the archive
     file utils, and places them in the current working
     directory.

     The following shell script converts a long format archive
     file to a normal format archive:

          #!/bin/sh -x
          #
          # Convert long format archive to normal format.
          #
          if test $# -ne 1
          then
               echo "$0 : usage : $0 file"
               exit 1
          fi
          Magic=`head -1 $1`
          if test "!<arch>" = "$Magic"
          then
               echo "$0 : The file $1 is already in normal format."
               exit 1
          fi

          if test "!<ARCH>" != "$Magic"
          then
               echo "$0 : The file $1 is not an archive file."
               exit 1



Printed 5/12/88                                                 3





AR(1)                   COMMAND REFERENCE                   AR(1)



          fi

          #
          # Build a temporary directory to hold the members.
          #
          err=1
          trap "rm -rf tmp.$$;"' exit $err' 0 1 2 3 15
          mkdir tmp.$$
          if test $? -ne 0
          then
               exit 1
          fi

          cd tmp.$$
          ar x ../"$1"
          ar crs tmp.a *
          mv tmp.a ../"$1"
          cd ..
          err=0

FILES
     /tmp/v*      Temporaries

RETURN VALUE
     [NO_ERRS]      Command completed without error.

     [USAGE]        Incorrect command line syntax. Execution
                    terminated.

     [NP_WARN]      An error warranting a warning message
                    occurred. Execution continues.

     [NP_ERR]       An error occurred that was not a system
                    error.  Execution terminated.

     [P_WARN]       A system error occurred. Execution continues.
                    See intro(2) for more information on system
                    errors.

     [P_ERR]        A system error occurred. Execution
                    terminated.  See intro(2) for more
                    information on system errors.

CAVEATS
     If the same file is mentioned twice in an argument list, it
     may be put in the archive twice.

     The last-modified date of a file will not be altered by the
     o option if the user is not the owner of the extracted file
     or is not the superuser.





Printed 5/12/88                                                 4





AR(1)                   COMMAND REFERENCE                   AR(1)



     The s flag causes ranlib to be executed using the user's
     execution path. In addition, ranlib executes ar using the
     user's execution path.

SEE ALSO
     cpio(1), file(1), ld(1), make(1), nm(1), ranlib(1),
     fgetarhdr(3c), getarhdr(3c), and ar(5).
















































Printed 5/12/88                                                 5





































































%%index%%
na:192,87;
sy:279,381;
de:660,1626;
op:2286,1101;3651,2988;6903,1187;
ex:8090,1005;9359,399;
fi:9758,97;
rv:9855,836;
ca:10691,378;11333,304;
se:11637,330;
%%index%%000000000189

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026