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

     printf - formatted print

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

     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

         - 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

        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.


     Very wide fields (>128 characters) fail.

                              - 2 -