85 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|   | <! $Id: File.3,v 1.3 2019/09/09 22:35:37 stolcke Exp $> | ||
|  | <HTML> | ||
|  | <HEADER> | ||
|  | <TITLE>File</TITLE> | ||
|  | <BODY> | ||
|  | <H1>File</H1> | ||
|  | <H2> NAME </H2> | ||
|  | File -  Wrapper for stdio streams | ||
|  | <H2> SYNOPSIS </H2> | ||
|  | <PRE> | ||
|  | <B> #include <File.h> </B> | ||
|  | </PRE> | ||
|  | <H2> DESCRIPTION </H2> | ||
|  | The | ||
|  | <B> File </B> | ||
|  | class provides a simple wrapper around stdio streams for use | ||
|  | with C++. | ||
|  | It provides two kinds of convenience: | ||
|  | Firstly, constructors and destructors manage opening and closing of the stream. | ||
|  | The stream is checked for errors on closing, and the default behavior | ||
|  | is to exit() with an error message if a problem was found. | ||
|  | Secondly, the getline() method can be used for line-oriented input. | ||
|  | It strips comments and keeps track of input line | ||
|  | numbers for error reporting. | ||
|  | <H2> CLASS MEMBERS </H2> | ||
|  | <DL> | ||
|  | <DT><B> File(const char *<I>name</I>, const char *<I>mode</I>, int <I>exitOnError</I> = 1) </B> | ||
|  | <DD> | ||
|  | <DT><B> File(FILE *<I>fp</I> = 0, int <I>exitOnError</I> = 1) </B> | ||
|  | <DD> | ||
|  | A File object can be initialized with either a filename or an existing | ||
|  | stdio stream. | ||
|  | In the first case, the file is opened according to <I>mode</I> | ||
|  | (as if by | ||
|  | <A HREF="fopen.3.html">fopen(3)</A>). | ||
|  | The <I>exitOnError</I> flag determines whether I/O errors should be treated | ||
|  | as fatal. | ||
|  | <DT><B> ~File() </B> | ||
|  | <DD> | ||
|  | Destroying a File object implies closing the associated stream. | ||
|  | <DT><B> char *getline() </B> | ||
|  | <DD> | ||
|  | Returns the next line from the input, stored in a static buffer of  | ||
|  | up to <B>maxLineLength</B> characters. | ||
|  | Empty lines and lines starting with <B>#</B> are skipped. | ||
|  | <DT><B> int close() </B> | ||
|  | <DD> | ||
|  | Closes the stream without destroying the File object. | ||
|  | Returns non-zero is an error condition occurs. | ||
|  | <DT><B> int error() </B> | ||
|  | <DD> | ||
|  | Returns a non-zero value if an error condition occurred on the stream. | ||
|  | <DT><B> operator FILE *() </B> | ||
|  | <DD> | ||
|  | A File object can be cast to <B>FILE *</B> to access the underlying stdio | ||
|  | stream. | ||
|  | <DT><B> ostream &position(ostream &<I>stream</I> = cerr) </B> | ||
|  | <DD> | ||
|  | Outputs the current line number on <I>stream</I>. | ||
|  | The <I>stream</I> is returned so it can be used as the left operand | ||
|  | of the <B><<</B> operator. | ||
|  | <DT><B> const char *name </B> | ||
|  | <DD> | ||
|  | The filename used in creating the File object. | ||
|  | <DT><B> const unsigned lineno </B> | ||
|  | <DD> | ||
|  | The current line number as maintained by <B>getline()</B>. | ||
|  | <DT><B> int exitOnError </B> | ||
|  | <DD> | ||
|  | When set to <B>true</B> this causes errors on the | ||
|  | stream to be handled by program termination (after printing an | ||
|  | error message). | ||
|  | </DD> | ||
|  | </DL> | ||
|  | <H2> SEE ALSO </H2> | ||
|  | <A HREF="stdio.3.html">stdio(3)</A> | ||
|  | <H2> BUGS </H2> | ||
|  | Many other potentially useful functions are not provided (yet). | ||
|  | <H2> AUTHOR </H2> | ||
|  | Andreas Stolcke <stolcke@icsi.berkeley.edu> | ||
|  | <BR> | ||
|  | Copyright (c) 1995-1996 SRI International | ||
|  | </BODY> | ||
|  | </HTML> |