2.11BSD/man/cat3/fprintf.0

Compare this file to the similar file:
Show the results in this format:




PRINTF(3S)	    UNIX Programmer's Manual	       PRINTF(3S)



NAME
     printf, fprintf, sprintf, vfprintf, vsprintf - formatted
     output conversion

SYNOPSIS
     #include <stdio.h>

     char *printf(format [, arg ] ...  )
     char *format;

     char *fprintf(stream, format [, arg ] ...	)
     FILE *stream;
     char *format;

     int sprintf(s, format [, arg ] ...  )
     char *s, *format;

     #include <varargs.h>
     char *vprintf(format, args)
     char *format;
     va_list args;

     char *vfprintf(stream, format, args)
     FILE *stream;
     char *format;
     va_list args;

     int vsprintf(s, format, args)
     char *s, *format;
     va_list args;

DESCRIPTION
     _P_r_i_n_t_f places output on the standard output stream stdout.
     _F_p_r_i_n_t_f places output on the named output _s_t_r_e_a_m.	_S_p_r_i_n_t_f
     places `output' in the string _s, followed by the character
     `\0'.  Alternate forms, in which the arguments have already
     been captured using the variable-length argument facilities
     of _v_a_r_a_r_g_s(3), are available under the names _v_p_r_i_n_t_f,
     _v_f_p_r_i_n_t_f, and _v_s_p_r_i_n_t_f.

     Each of these functions converts, formats, and prints its
     arguments after the first under control of the first argu-
     ment.  The first argument is a character string which con-
     tains two types of objects: plain characters, which are sim-
     ply copied to the output stream, and conversion specifica-
     tions, each of which causes conversion and printing of the
     next successive _a_r_g _p_r_i_n_t_f.

     Each conversion specification is introduced by the character
     %.  The remainder of the conversion specification includes
     in the following order




Printed 11/26/99	 August 10, 1988			1






PRINTF(3S)	    UNIX Programmer's Manual	       PRINTF(3S)



     o+	  a minus sign `-' which specifies _l_e_f_t _a_d_j_u_s_t_m_e_n_t of the
	  converted value in the indicated field;

     o+	  an optional digit string specifying a _f_i_e_l_d _w_i_d_t_h; if
	  the converted value 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; if the field width begins with a
	  zero, zero-padding will be done instead of blank-
	  padding;

     o+	  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 point, for e- and
	  f-conversion, or the maximum number of characters to be
	  printed from a string;

     o+	  the character l specifying that a following d, o, x, or
	  u corresponds to a long integer _a_r_g;

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

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

     The conversion characters and their meanings are

     dox  The integer _a_r_g is converted to signed decimal,
	  unsigned octal, or unsigned hexadecimal notation
	  respectively.

     f	  The float or double _a_r_g is converted to decimal nota-
	  tion 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 digits are given; if the precision is expli-
	  citly 0, no digits and no decimal point are printed.

     e	  The float or double _a_r_g 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 pre-
	  cision specification for the argument; when the preci-
	  sion is missing, 6 digits are produced.

     g	  The float or double _a_r_g is printed in style d, in style
	  f, or in style e, whichever gives full precision in
	  minimum space.

     c	  The character _a_r_g is printed.




Printed 11/26/99	 August 10, 1988			2






PRINTF(3S)	    UNIX Programmer's Manual	       PRINTF(3S)



     s	  _A_r_g is taken to be a string (character pointer) and
	  characters from the string are printed until a null
	  character or until the number of characters indicated
	  by the precision specification is reached; however if
	  the precision is 0 or missing all characters up to a
	  null are printed.

     u	  The unsigned integer _a_r_g is converted to decimal and
	  printed (the result will be in the range 0 through MAX-
	  UINT, where MAXUINT equals 4294967295 on a VAX-11 and
	  65535 on a PDP-11).

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

     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 _p_r_i_n_t_f are printed as by _p_u_t_c(3S).

RETURN VALUE
     The functions all return the number of characters printed,
     or -1 if an error occurred.

EXAMPLES
     To print a date and time in the form `Sunday, July 3,
     10:02', where _w_e_e_k_d_a_y and _m_o_n_t_h are pointers to null-
     terminated strings:

	  printf("%s, %s %d, %02d:%02d", weekday, month, day,
	       hour, min);

     To print pi to 5 decimals:

	  printf("pi = %.5f", 4*atan(1.0));

SEE ALSO
     putc(3S), scanf(3S)

BUGS
     Very wide fields (>300 characters) fail.

     Only _s_p_r_i_n_t_f and _v_s_p_r_i_n_t_f return a count of characters
     transferred.

     The functions still supports %_D, %_O, %_U and %_X.  Do not use
     these formats, as they will be disappearing real soon now.









Printed 11/26/99	 August 10, 1988			3