mod.std.c Digest V16#13
Orlando Sotomayor-Diaz
osd at hou2d.UUCP
Fri May 16 03:29:50 AEST 1986
From: Orlando Sotomayor-Diaz (The Moderator) <cbosgd!std-c>
mod.std.c Digest Thu, 15 May 86 Volume 16 : Issue 13
Today's Topics:
MORE C standard differences Apr85-Feb86, part 3 of 9
----------------------------------------------------------------------
Date:
From: ihnp4!utzoo!lsuc!msb
Subject: MORE C standard differences Apr85-Feb86, part 3 of 9
To: utzoo!ihnp4!hou2d!osd
# D.9.4.4 The tmpnam function
* If the argument is not {null --> a null pointer}, it is assumed
* to point to an array of at least L_tmpnam {bytes --> characters}
...
# D.9.5.2 The fflush function
The fflush function causes any unwritten data for the output
* stream pointed to by stream to be {--> delivered to the host en-
vironment to be} written to the file.
# D.9.5.3 The fopen function
* "w": create text file for writing, or truncate {--> to zero
length}.
Remark: The same change for "wb", "w+", and "w+b".
# D.9.5.3 The fopen function
However, output may not be directly followed by input without an
* intervening {--> fflush,} fseek, or rewind, and input may not be
* directly followed by output without an intervening {--> fflush,}
fseek, or rewind, unless the input operation encounters end-of-
file.
# D.9.5.3 The fopen function
<--O After the write operation, the file pointer is repositioned at
<--O the end of the output file and the buffer is flushed.
# D.9.5.3 The fopen function
N--> When opened, a stream is fully buffered if and only if it does
N--> not refer to an interactive device.
# D.9.5.4 The freopen function
The primary use of freopen is ... with ... stderr, stdin, or
* stdout ..., as those identifiers need not be {lvalue expressions
--> modifiable lvalues} (that may be assigned to by the fopen
function).
# D.9.5.5 The setbuf function
<--O The setbuf function is used after the stream pointed to be stream
<--O has been associated with an open file but before it is read or
<--O written. It causes the array pointed to by buf to be used in-
<--O stead of an automatically allocated buffer. If buf is a null
<--O pointer, input/output on that stream will be completely unbuf-
<--O fered. The macro BUFSIZ specifies the size in bytes of the array
<--O that is needed.
<--O The standard stream stdout is normally buffered if and only if
<--O the output does not refer to a terminal; this default may be
<--O changed by setbuf. The standard stream stderr is by default un-
<--O buffered unconditionally; setbuf will set the state to whatever
<--O is desired. When an output stream is unbuffered, information ap-
<--O pears on the destination file or terminal as soon as written;
<--O when it is buffered, characters are saved up and written as a
<--O block.
<--O ... The buffer must have a lifetime at least as great as the
<--O open stream, so a stream must be closed before a buffer that has
<--O automatic storage duration is deallocated upon block exit.
N--> Except that it returns no value, the setbuf function is
N--> equivalent to the setvbuf function invoked with the values _IOFBF
N--> for type and BUFSIZ for size, or (if buf is a null pointer), with
N--> the value _IONBF for type.
# D.9.5.6 The setvbuf function
int setvbuf(FILE *stream, char *buf, int type,
* {int --> size_t} size);
# D.9.5.6 The setvbuf function
* The setvbuf function {is --> may be} used after the stream point-
ed to by stream has been associated with an open file but before
it is read or written.
# D.9.5.6 The setvbuf function
* ... _IOFBF causes input/output to be fully buffered {, if possi-
* ble -->}; _IOLBF causes input/output to be line buffered {, if
possible -->} ...; _IONBF causes input/output to be completely
* unbuffered {, if possible -->}.
# D.9.5.6 The setvbuf function
* If buf is not a null pointer, the array it points to {will -->
may} be used instead of an automatically allocated buffer. ...
* {--> The contents of the array at any time are indeterminate.}
... The buffer must have a lifetime at least as great as the
* open stream, so the stream {must --> should} be closed before a
buffer that has automatic storage duration is deallocated upon
block exit.
# D.9.5.6 The setvbuf function
The setvbuf function returns non-zero if an invalid value is
* given for type or size {-->, or if the request cannot be
honored}.
# D.9.6.1 The fprintf function
* An optional decimal {digit string --> integer} specifying a
minimum "field width". ... The padding is with spaces unless
* the field width {digit string --> integer} starts with a zero, in
which case the padding is with zeros.
* An {--> optional} "precision" ... The precision takes the form
* of a period (.) followed by an {--> optional} decimal {digit
* string --> integer}; {a null digit string --> if the integer is
omitted, it} is treated as zero.
# D.9.6.1 The fprintf function
An optional h specifying that a following ... conversion specif-
ier applies to a short int or unsigned short int argument (the
argument will have been promoted ... and its value shall be
* {cast --> converted} to a short int or unsigned short int before
printing) ...
# D.9.6.1 The fprintf function
* c The {least significant byte of the -->} int argument is
* converted to a {character --> char}, and {--> the result-
ing character is} printed.
# D.9.6.1 The fprintf function
<--O If the character after the % is not a valid conversion specifier,
<--O the behavior is undefined.
N--> If the conversion specifier is a lower-case letter that is not
N--> described above, the behavior is undefined. If the conversion
N--> specifier is any other character that is not described above, the
N--> behavior is implementation-defined.
# D.9.6.1 The fprintf function
* {--> #include <stdio.h>}
fprintf(stdout, "%s, %s %d, %.2d:%.2d\n",
weekday, month, day, hour, min);
...
#include <math.h>
* {--> #include <stdio.h>}
fprintf(stdout, "pi = %.5f\n", 4 * atan(1.0));
# D.9.6.2 The fscanf function
* Conversion specifications, consisting {--> in sequence} of the
character %, an optional assignment-suppressing character *, an
* optional {numerical --> decimal integer that specifies the} max-
imum field width, ...
# D.9.6.2 The fscanf function
... The following conversion specifiers are valid:
* d An {--> optionally signed} decimal integer is expected;
...
# D.9.6.2 The fscanf function
* ... the {subsequent --> corresponding} argument shall be
a pointer to integer.
Remark: This change is made throughout the section.
# D.9.6.2 The fscanf function
<--O i An integer is expected; the subsequent argument must be a
<--O pointer to integer. The input is interpreted as an in-
<--O teger constant, with an optional sign prefix and an op-
<--O tional integer suffix. If the input field begins with
<--O the characters 0x or 0X, the field is taken as a hexade-
<--O cimal integer. Otherwise, if the input field begins with
<--O the character 0, the field is taken as an octal integer.
<--O Otherwise, the input field is taken as a decimal integer.
N--> i An integer is expected; the corresponding argument shall
N--> be a pointer to integer. The input format is as
N--> described for the strtol function, with the value 0 for
N--> the base argument.
------------------------------
End of mod.std.c Digest - Thu, 15 May 86 13:29:24 EDT
******************************
USENET -> posting only through cbosgd!std-c.
ARPA -> ... through cbosgd!std-c at BERKELEY.ARPA (NOT to INFO-C)
In all cases, you may also reply to the author(s) above.
More information about the Mod.std.c
mailing list