Annotation of 43BSDTahoe/man/man3/printf.3, revision 1.1

1.1     ! root        1: .\"    @(#)printf.3    6.5 (Berkeley) 6/5/88
        !             2: .\"
        !             3: .TH PRINTF 3S "October 22, 1987"
        !             4: .AT 3
        !             5: .SH NAME
        !             6: printf, fprintf, sprintf \- formatted output conversion
        !             7: .SH SYNOPSIS
        !             8: .B #include <stdio.h>
        !             9: .PP
        !            10: .B printf(format
        !            11: .RB [ ,
        !            12: arg ] ...
        !            13: .B )
        !            14: .br
        !            15: .B char *format;
        !            16: .PP
        !            17: .B fprintf(stream, format
        !            18: .RB [ ,
        !            19: arg ] ...
        !            20: .B )
        !            21: .br
        !            22: .SM
        !            23: .B FILE
        !            24: .B *stream;
        !            25: .br
        !            26: .B char *format;
        !            27: .PP
        !            28: .B sprintf(s, format
        !            29: .RB [ ,
        !            30: arg ] ...
        !            31: .B )
        !            32: .br
        !            33: .B char *s, *format;
        !            34: .PP
        !            35: .B #include <varargs.h>
        !            36: .br
        !            37: .B vprintf(format, args)
        !            38: .br
        !            39: .B char *format;
        !            40: .br
        !            41: .B va_list args;
        !            42: .PP
        !            43: .B vfprintf(stream, format, args)
        !            44: .br
        !            45: .B FILE *stream;
        !            46: .br
        !            47: .B char *format;
        !            48: .br
        !            49: .B va_list args;
        !            50: .PP
        !            51: .B vsprintf(s, format, args)
        !            52: .br
        !            53: .B char *s, *format;
        !            54: .br
        !            55: .B va_list args;
        !            56: .SH DESCRIPTION
        !            57: .I Printf
        !            58: places output on the standard output stream
        !            59: .BR stdout .
        !            60: .I Fprintf
        !            61: places output on the named output
        !            62: .IR stream .
        !            63: .I Sprintf
        !            64: places `output' in the string
        !            65: .IR s ,
        !            66: followed by the character `\\0'.
        !            67: Alternate forms, in which the arguments have already been
        !            68: captured using the variable-length argument facilities of
        !            69: .IR varargs (3),
        !            70: are available under the names
        !            71: .IR vprintf ,
        !            72: .IR vfprintf ,
        !            73: and
        !            74: .IR vsprintf .
        !            75: .PP
        !            76: Each of these functions converts, formats, and prints its arguments after
        !            77: the first under control of the first argument.
        !            78: The first argument is a character string which contains two types of objects:
        !            79: plain characters, which are simply copied to the output stream,
        !            80: and conversion specifications, each of which causes conversion and printing
        !            81: of the next successive
        !            82: .I arg
        !            83: .IR printf .
        !            84: .PP
        !            85: Each conversion specification is introduced by the character
        !            86: .BR % .
        !            87: The remainder of the conversion specification includes
        !            88: in the following order
        !            89: .TP
        !            90: .B \(bu
        !            91: Zero or more of the following flags:
        !            92: .RS
        !            93: .TP
        !            94: .B \(bu
        !            95: a `#' character
        !            96: specifying that the value should be converted to an ``alternate form''.
        !            97: For 
        !            98: .BR c ,
        !            99: .BR d ,
        !           100: .BR s ,
        !           101: and
        !           102: .BR u ,
        !           103: conversions, this option has no effect.  For 
        !           104: .B o
        !           105: conversions, the precision of the number is increased to force the first
        !           106: character of the output string to a zero.  For 
        !           107: .BR x ( X )
        !           108: conversion, a non-zero result has the string 
        !           109: .BR 0x ( 0X )
        !           110: prepended to it.  For 
        !           111: .BR e ,
        !           112: .BR E ,
        !           113: .BR f ,
        !           114: .BR g ,
        !           115: and
        !           116: .BR G ,
        !           117: conversions, the result will always contain a decimal point, even if no
        !           118: digits follow the point (normally, a decimal point only appears in the
        !           119: results of those conversions if a digit follows the decimal point).  For
        !           120: .B g
        !           121: and
        !           122: .B G
        !           123: conversions, trailing zeros are not removed from the result as they
        !           124: would otherwise be;
        !           125: .TP
        !           126: .B \(bu
        !           127: a minus sign `\-' which specifies
        !           128: .I "left adjustment"
        !           129: of the converted value in the indicated field;
        !           130: .TP
        !           131: .B \(bu
        !           132: a `+' character specifying that there should always be
        !           133: a sign placed before the number when using signed conversions;
        !           134: .TP
        !           135: .B \(bu
        !           136: a space specifying that a blank should be left before a positive number
        !           137: during a signed conversion.  A `+' overrides a space if both are used;
        !           138: .TP
        !           139: .B \(bu
        !           140: a zero `0' character indicating that zero-padding should be used
        !           141: rather than blank-padding.  A `\-' overrides a `0' if both are used;
        !           142: .RE
        !           143: .TP
        !           144: .B \(bu
        !           145: an optional digit string specifying a
        !           146: .I "field width;"
        !           147: if the converted value has fewer characters than the field width
        !           148: it will be blank-padded on the left (or right,
        !           149: if the left-adjustment indicator has been given) to make up the field width
        !           150: (note that a leading zero is a flag,
        !           151: but an embedded zero is part of a field width);
        !           152: .TP
        !           153: .B \(bu
        !           154: an optional period, followed by
        !           155: an optional digit string giving a
        !           156: .I precision
        !           157: which specifies the number of digits to appear after the
        !           158: decimal point, for e- and f-conversion, or the maximum number of characters
        !           159: to be printed from a string; if the digit string is missing,
        !           160: the precision is treated as zero;
        !           161: .TP
        !           162: .B \(bu
        !           163: the character
        !           164: .B l
        !           165: specifying that a following
        !           166: .BR d ,
        !           167: .BR i ,
        !           168: .BR o ,
        !           169: .BR x ,
        !           170: or
        !           171: .B u
        !           172: corresponds to a long integer
        !           173: .IR arg ,
        !           174: or that a following
        !           175: .B n
        !           176: corresponds to a pointer to a long integer
        !           177: .IR arg ;
        !           178: .TP
        !           179: .B \(bu
        !           180: the character
        !           181: .B h
        !           182: specifying that a following
        !           183: .BR d ,
        !           184: .BR i ,
        !           185: .BR o ,
        !           186: .BR x ,
        !           187: or
        !           188: .B u
        !           189: corresponds to a short integer
        !           190: .IR arg ,
        !           191: or that a following
        !           192: .B n
        !           193: corresponds to a pointer to a short integer
        !           194: .IR arg ;
        !           195: .TP
        !           196: .B \(bu
        !           197: a character which indicates the type of
        !           198: conversion to be applied.
        !           199: .PP
        !           200: A field width or precision may be `*' instead of a digit string.
        !           201: In this case an integer
        !           202: .I arg
        !           203: supplies
        !           204: the field width or precision.
        !           205: .PP
        !           206: The conversion characters
        !           207: and their meanings are
        !           208: .TP
        !           209: .B dox
        !           210: The integer
        !           211: .I arg
        !           212: is converted to signed decimal, unsigned octal, or
        !           213: unsigned hexadecimal notation respectively.
        !           214: .TP
        !           215: .B i
        !           216: An alias for `d'.
        !           217: .TP
        !           218: .B f
        !           219: The float or double
        !           220: .I arg
        !           221: is converted to decimal notation
        !           222: in the style `[\fB\-\fR]ddd.ddd'
        !           223: where the number of d's after the decimal point
        !           224: is equal to the precision specification
        !           225: for the argument.
        !           226: If the precision
        !           227: is missing,
        !           228: 6 digits are given;
        !           229: if the precision is explicitly 0, no digits and
        !           230: no decimal point are printed.
        !           231: .TP
        !           232: .B eE
        !           233: The float or double
        !           234: .I arg
        !           235: is converted in the style
        !           236: `[\fB\-\fR]d\fB.\fRddd\fBe\fR\(+-dd'
        !           237: where there is one digit before the decimal point and
        !           238: the number after is equal to the
        !           239: precision specification for the argument;
        !           240: when the precision is missing,
        !           241: 6 digits are produced.
        !           242: An uppercase E is used for `E' conversion.
        !           243: .TP
        !           244: .B gG
        !           245: The float or double
        !           246: .I arg
        !           247: is printed in style
        !           248: .B f
        !           249: or in style
        !           250: .B e
        !           251: .RB ( E )
        !           252: whichever gives full precision in minimum space.
        !           253: .TP
        !           254: .B c
        !           255: The character
        !           256: .I arg
        !           257: is printed.
        !           258: .TP
        !           259: .B s
        !           260: .I Arg
        !           261: is taken to be a string (character pointer)
        !           262: and characters from the string are printed until
        !           263: a null character or until
        !           264: the number of characters indicated by the precision
        !           265: specification is reached;
        !           266: however if the precision is 0 or missing
        !           267: all characters up to a null are printed.
        !           268: .TP
        !           269: .B u
        !           270: The unsigned integer
        !           271: .I arg
        !           272: is converted to decimal
        !           273: and printed (the result will be in the
        !           274: range 0 through MAXUINT, where MAXUINT equals 4294967295 on a VAX-11
        !           275: and 65535 on a PDP-11).
        !           276: .TP
        !           277: .B n
        !           278: .I Arg
        !           279: is taken to be a pointer to an integer (possibly
        !           280: .B short
        !           281: or
        !           282: .BR long )
        !           283: through which is stored the number of characters written
        !           284: to the output stream (or string) so far by this call to
        !           285: .B printf
        !           286: (or
        !           287: .BR fprintf ,
        !           288: etc.).
        !           289: .TP
        !           290: .B p
        !           291: .I Arg
        !           292: is taken to be a pointer to
        !           293: .BR void ;
        !           294: it is printed in style
        !           295: .BR x .
        !           296: .TP
        !           297: .B %
        !           298: Print a `%'; no argument is converted.
        !           299: .PP
        !           300: In no case does a non-existent or small field width
        !           301: cause truncation of a field;
        !           302: padding takes place only if the specified field
        !           303: width exceeds the actual width.
        !           304: Characters generated by
        !           305: .I printf
        !           306: are printed as by 
        !           307: .IR putc (3S).
        !           308: .PP
        !           309: .SH "RETURN VALUE"
        !           310: The functions all return
        !           311: the number of characters printed, or -1 if an error occurred.
        !           312: .SH EXAMPLES
        !           313: .br
        !           314: To print a date and time in the form `Sunday, July 3, 10:02',
        !           315: where
        !           316: .I weekday
        !           317: and
        !           318: .I month
        !           319: are pointers to null-terminated strings:
        !           320: .RS
        !           321: .HP
        !           322: .nh
        !           323: printf("%s, %s %d, %02d:%02d", weekday, month, day, hour, min);
        !           324: .RE
        !           325: .hy
        !           326: .PP
        !           327: To print
        !           328: .if n pi
        !           329: .if t \(*p
        !           330: to 5 decimals:
        !           331: .IP
        !           332: printf("pi = %.5f", 4*atan(1.0));
        !           333: .SH "SEE ALSO"
        !           334: putc(3S), scanf(3S)
        !           335: .SH BUGS
        !           336: The functions still supports \fI%D\fP, \fI%O\fP, and \fI%U\fP.  Do not
        !           337: use these formats, as they will be disappearing soon.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.