


PRINTF(1)	    UNIX Programmer's Manual		PRINTF(1)



NAME
     printf - formatted output

SYNOPSIS
     printf format [ arguments ... ]

DESCRIPTION
     Printf formats and prints its arguments, after the first,
     under control of the _f_o_r_m_a_t.  The _f_o_r_m_a_t is a character
     string which contains three types of objects: plain charac-
     ters, which are simply copied to standard output, character
     escape sequences which are converted and copied to the stan-
     dard output, and format specifications, each of which causes
     printing of the next successive _a_r_g_u_m_e_n_t.

     The _a_r_g_u_m_e_n_t_s after the first are treated as strings if the
     corresponding format is either c or s; otherwise it is
     evaluated as a C constant, with the following extensions:

     o+	  A leading plus or minus sign is allowed.

     o+	  If the leading character is a single or double quote,
	  or not a digit, plus, or minus sign, the value is the
	  ASCII code of the next character.

     The format string is reused as often as necessary to satisfy
     the _a_r_g_u_m_e_n_t_s.  Any extra format specifications are
     evaluated with zero or the null string.

     Character escape sequences are in backslash notation as
     defined in the draft proposed ANSI C Standard X3J11.  The
     characters and their meanings are as follows:

	  \a	    Write a <bell> character.

	  \b	    Write a <backspace> character.

	  \f	    Write a <form-feed> character.

	  \n	    Write a <new-line> character.

	  \r	    Write a <carriage return> character.

	  \t	    Write a <tab> character.

	  \v	    Write a <vertical tab> character.

	  \'	    Write a <single quote> character.

	  \\	    Write a backslash character.

	  \_n_u_m	    Write an 8-bit character whose ASCII value is the



     Printed 11/26/99		May 2, 1995			     1






     PRINTF(1)		 UNIX Programmer's Manual	     PRINTF(1)



		    1-, 2-, or 3-digit octal number _n_u_m.

     Each format specification is introduced by the percent char-
     acter (``%'').  The remainder of the format specification
     includes, in the following order:

     "Zero or more of the following flags:"


	  #	    A `#' character specifying that the value should
		    be printed in an ``alternate form''.  For c, d,
		    and s, formats, this option has no effect.	For
		    the o formats the precision of the number is
		    increased to force the first character of the out-
		    put string to a zero.  For the x (X) format, a
		    non-zero result has the string 0x (0X) prepended
		    to it.  For e, E, f, g, and G, formats, the result
		    will always contain a decimal point, even if no
		    digits follow the point (normally, a decimal point
		    only appears in the results of those formats if a
		    digit follows the decimal point).  For g and G
		    formats, trailing zeros are not removed from the
		    result as they would otherwise be;

	  -	    A minus sign `-' which specifies _l_e_f_t _a_d_j_u_s_t_m_e_n_t
		    of the output in the indicated field;

	  +	    A `+' character specifying that there should
		    always be a sign placed before the number when
		    using signed formats.

	  ` '	    A space specifying that a blank should be left
		    before a positive number for a signed format.  A
		    `+' overrides a space if both are used;

	  0	    A zero `0' character indicating that zero-padding
		    should be used rather than blank-padding.  A `-'
	       overrides a `0' if both are used;

     Field Width:
	       An optional digit string specifying a _f_i_e_l_d _w_i_d_t_h;
	       if the output string has fewer characters than the
	       field width it will be blank-padded on the left
	       (or right, if the left-adjustment indicator has
	       been given) to make up the field width (note that
	       a leading zero is a flag, but an embedded zero is
	       part of a field width);

     Precision:
	       An optional period, followed by an optional digit
	       string giving a _p_r_e_c_i_s_i_o_n which specifies the
	       number of digits to appear after the decimal



Printed 11/26/99	   May 2, 1995				2






PRINTF(1)	    UNIX Programmer's Manual		PRINTF(1)



	       point, for e and f formats, or the maximum number
	       of characters to be printed from a string; if the
	       digit string is missing, the precision is treated
	       as zero;

     Format:
	       A character which indicates the type of format to
	       use (one of diouxXfwEgGcs).

     A field width or precision may be * instead of a digit
     string.  In this case an _a_r_g_u_m_e_n_t supplies the field width
     or precision.

     The format characters and their meanings are:

     diouXx    The _a_r_g_u_m_e_n_t is printed as a signed decimal (d or
	       i), unsigned decimal, unsigned octal, or unsigned
	       hexadecimal (X or x), respectively.

     f	       The _a_r_g_u_m_e_n_t is printed in the style `[-]ddd.ddd'
	       where the number of d's after the decimal point is
	       equal to the precision specification for the argu-
	       ment.  If the precision is missing, 6 digits are
	       given; if the precision is explicitly 0, no digits
	       and no decimal point are printed.

     eE        The _a_r_g_u_m_e_n_t is printed in the style e where there
	       is one digit before the decimal point and the
	       number after is equal to the precision specifica-
	       tion for the argument; when the precision is miss-
	       ing, 6 digits are produced.  An upper-case E is
	       used for an `E' format.

     gG        The _a_r_g_u_m_e_n_t is printed in style f or in style e
	       (E) whichever gives full precision in minimum
	       space.

     c	       The first character of _a_r_g_u_m_e_n_t is printed.

     s	       Characters from the string _a_r_g_u_m_e_n_t are printed
	       until the end is reached or until the number of
	       characters indicated by the precision specifica-
	       tion is reached; however if the precision is 0 or
	       missing, all characters in the string are printed.

     %	       Print a `%'; no argument is used.

     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.





Printed 11/26/99	   May 2, 1995				3






PRINTF(1)	    UNIX Programmer's Manual		PRINTF(1)



RETURN VALUES
     Printf exits 0 on success, 1 on failure.

SEE ALSO
     _p_r_i_n_t_f(3)

HISTORY
     The printf command appeared in 4.3-Reno.  It is modeled
     after the standard library function, printf(3).

BUGS
     Since the floating point numbers are translated from ASCII
     to floating-point and then back again, floating-point preci-
     sion may be lost.

     ANSI hexadecimal character constants were deliberately not
     provided.






































Printed 11/26/99	   May 2, 1995				4



