STDIO.3
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:5k
源码类别:
操作系统开发
开发平台:
C/C++
- ." Copyright (c) 1980 Regents of the University of California.
- ." All rights reserved. The Berkeley software License Agreement
- ." specifies the terms and conditions for redistribution.
- ."
- ." @(#)stdio.3s 6.2 (Berkeley) 5/13/86
- ."
- .TH STDIO 3 "May 13, 1986"
- .UC 4
- .SH NAME
- stdio - standard buffered input/output package
- .SH SYNOPSIS
- .nf
- .ft B
- #include <stdio.h>
- FILE *stdin;
- FILE *stdout;
- FILE *stderr;
- .ft R
- .fi
- .SH DESCRIPTION
- The functions in the standard I/O library constitute a user-level buffering
- scheme. The in-line macros
- .B getc
- and
- .BR putc (3)
- handle characters quickly. The higher level routines
- .BR gets ,
- .BR fgets ,
- .BR scanf ,
- .BR fscanf ,
- .BR fread ,
- .BR puts ,
- .BR fputs ,
- .BR printf ,
- .BR fprintf ,
- .BR fwrite
- all use
- .B getc
- and
- .BR putc ;
- they can be freely intermixed.
- .PP
- A file with associated buffering is called a
- .IR stream ,
- and is declared to be a pointer to a defined type
- .SM
- .BR FILE .
- .BR Fopen (3)
- creates certain descriptive data for a stream
- and returns a pointer to designate the stream in all further transactions.
- There are three normally open streams with constant pointers declared in
- the include file and associated with the standard open files:
- .TP 10n
- .B stdin
- standard input file
- .br
- .ns
- .TP
- .B stdout
- standard output file
- .br
- .ns
- .TP
- .B stderr
- standard error file
- .PP
- A constant `pointer'
- .SM
- .B NULL
- (0)
- designates no stream at all.
- .PP
- An integer constant
- .SM
- .B EOF
- (-1) is returned upon end of file or error by integer functions that
- deal with streams.
- .PP
- Any routine that uses the standard input/output package
- must include the header file
- .RI < stdio.h >
- of pertinent macro definitions.
- The functions and constants mentioned in the standard I/O manual pages
- are declared in the include file and need no further declaration.
- The constants, and the following `functions' are
- implemented as macros; redeclaration of these names is perilous:
- .BR clearerr ,
- .BR getc ,
- .BR getchar ,
- .BR putc ,
- .BR putchar ,
- .BR feof ,
- .BR ferror ,
- .BR fileno .
- .SH "SEE ALSO"
- .BR open (2),
- .BR close (2),
- .BR read (2),
- .BR write (2),
- .BR fclose (3),
- .BR ferror (3),
- .BR fopen (3),
- .BR fread (3),
- .BR fseek (3),
- .BR getc (3),
- .BR gets (3),
- .BR printf (3),
- .BR putc (3),
- .BR puts (3),
- .BR scanf (3),
- .BR setbuf (3),
- .BR ungetc (3).
- .SH DIAGNOSTICS
- The value
- .SM
- .B EOF
- is returned uniformly to indicate that a
- .SM
- .B FILE
- pointer has not been initialized with
- .BR fopen ,
- input (output) has been attempted on an output (input) stream, or a
- .SM
- .B FILE
- pointer designates corrupt or otherwise unintelligible
- .SM
- .B FILE
- data.
- .PP
- For purposes of efficiency, this implementation of the standard library
- has been changed to line buffer output to a terminal by default and attempts
- to do this transparently by flushing the output whenever a
- .BR read (2)
- from the standard input is necessary. This is almost always transparent,
- but may cause confusion or malfunctioning of programs which use
- standard i/o routines but use
- .BR read (2)
- themselves to read from the standard input.
- .PP
- In cases where a large amount of computation is done after printing
- part of a line on an output terminal, it is necessary to
- .BR fflush (3)
- the standard output before going off and computing so that the output
- will appear.
- .SH BUGS
- The standard buffered functions do not interact well with certain other
- library and system functions, especially fBforkfP and fBabortfP.
- .SH "LIST OF FUNCTIONS"
- .sp 2
- .nf
- .ta w'setlinebuf'u+2n +w'setbuf(3)'u+10n
- fBNamefP fBAppears on PagefP fBDescriptionfP
- .ta w'setlinebuf'u+4n +w'setbuf(3)'u+4n
- .sp 5p
- clearerr ferror(3) stream status inquiries
- fclose fclose(3) close or flush a stream
- fdopen fopen(3) open a stream
- feof ferror(3) stream status inquiries
- ferror ferror(3) stream status inquiries
- fflush fclose(3) close or flush a stream
- fgetc getc(3) get character or word from stream
- fgets gets(3) get a string from a stream
- fileno ferror(3) stream status inquiries
- fopen fopen(3) open a stream
- fprintf printf(3) formatted output conversion
- fputc putc(3) put character or word on a stream
- fputs puts(3) put a string on a stream
- fread fread(3) buffered binary input/output
- freopen fopen(3) open a stream
- fscanf scanf(3) formatted input conversion
- fseek fseek(3) reposition a stream
- ftell fseek(3) reposition a stream
- fwrite fread(3) buffered binary input/output
- getc getc(3) get character or word from stream
- getchar getc(3) get character or word from stream
- gets gets(3) get a string from a stream
- getw getc(3) get character or word from stream
- printf printf(3) formatted output conversion
- putc putc(3) put character or word on a stream
- putchar putc(3) put character or word on a stream
- puts puts(3) put a string on a stream
- putw putc(3) put character or word on a stream
- rewind fseek(3) reposition a stream
- scanf scanf(3) formatted input conversion
- setbuf setbuf(3) assign buffering to a stream
- setvbuf setbuf(3) assign buffering to a stream
- snprintf printf(3) formatted output conversion
- sprintf printf(3) formatted output conversion
- sscanf scanf(3) formatted input conversion
- ungetc ungetc(3) push character back into input stream
- vfprintf printf(3) formatted output conversion
- vfscanf scanf(3) formatted input conversion
- vprintf printf(3) formatted output conversion
- vscanf scanf(3) formatted input conversion
- vsnprintf printf(3) formatted output conversion
- vsprintf printf(3) formatted output conversion
- vsscanf scanf(3) formatted input conversion
- .fi