200 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" 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 \fBfork\fP and \fBabort\fP.
 | |
| .SH "LIST OF FUNCTIONS"
 | |
| .sp 2
 | |
| .nf
 | |
| .ta \w'setlinebuf'u+2n +\w'setbuf(3)'u+10n
 | |
| \fBName\fP	\fBAppears on Page\fP	\fBDescription\fP
 | |
| .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
 | 
