    PRINTF(III)                  9/17/73                  PRINTF(III)

    NAME
         printf - formatted print

    SYNOPSIS
         printf(format, arg1, ...);
         char *format;

    DESCRIPTION
         Printf converts, formats, and prints its arguments after the
         first under control of the first argument.  The first  argu-
         ment  is  a character string which contains two types of ob-
         jects: plain characters, which are simply copied to the out-
         put  stream,  and  conversion  specifications, each of which
         causes conversion and printing of the next successive  argu-
         ment to printf.

         Each conversion specification is introduced by the character
         %.  Following the %, there may be

             - an optional minus sign ``-'' which specifies left ad-
               justment  of  the  converted argument in the indicated
               field;

             - an optional digit string specifying a field width;  if
               the  converted  argument has fewer characters than the
               field width it will be blank-padded on  the  left  (or
               right,  if the left-adjustment indicator has been giv-
               en) to make up the field width;

             - an optional period ``.'' which serves to separate  the
               field width from the next digit string;

             - an  optional  digit string (precision) which specifies
               the number of  digits  to  appear  after  the  decimal
               point,  for e- and f-conversion, or the maximum number
               of characters to be printed from a string;

             - a character which indicates the type of conversion  to
               be applied.

         The conversion characters and their meanings are

            d
            o
            x  The  integer  argument is converted to decimal, octal,
               or hexadecimal notation respectively.

            f  The argument is converted to decimal notation  in  the
               style ``[-]ddd.ddd'' where the number of d's after the
               decimal point is equal to the precision  specification
               for the argument.  If the precision is missing, 6 dig-
               its are given; if the precision is  explicitly  0,  no
               digits and no decimal point are printed.  The argument
               should be float or double.

                                  - 1 -

    PRINTF(III)                  9/17/73                  PRINTF(III)

            e  The   argument   is    converted    in    the    style
               ``[-]d.ddde+-dd''  where there is one digit before the
               decimal point and the number after  is  equal  to  the
               precision  specification  for  the  argument; when the
               precision is missing, 6 digits are produced.  The  ar-
               gument should be a float or double quantity.

            c  The argument character is printed.

            s  The argument is taken to be a string (character point-
               er) and characters from the string are printed until a
               null character or until the number of characters indi-
               cated by the precision specification is reached;  how-
               ever  if  the precision is 0 or missing all characters
               up to a null are printed.

            l  The argument is taken to be an unsigned integer  which
               is  converted  to decimal and printed (the result will
               be in the range 0 to 65535).

         If no recognizable character appears after the %, that char-
         acter is printed; thus % may be printed by use of the string
         %%.  In no case does a non-existent  or  small  field  width
         cause truncation of a field; padding takes place only if the
         specified field width exceeds the actual width.   Characters
         generated by printf are printed by calling putchar.

    SEE ALSO
         putchar(III)

    BUGS
         Very wide fields (>128 characters) fail.

                                  - 2 -