This is libio, the GNU C/C++ input/output library.

By default, the library is configured to build the C++ iostream
facility (in $libdir/libiostream.a).

The library can be configured to build the C stdio facility
that is part of a C run-time library.

This library is distributed with libg++; see ../libg++/README
for installation instructions, and where to send bug reports
and questions.

* Copyright restrictions

The files in this directory are generally covered by the GNU Public
License (which is in the file ../COPYING), but modified with the
following:

    As a special exception, if you link this library with files
    compiled with a GNU compiler to produce an executable, this does not cause
    the resulting executable to be covered by the GNU General Public License.
    This exception does not however invalidate any other reasons why
    the executable file might be covered by the GNU General Public License.

A few source files and subroutines are covered by other (but
less restrictive) copyright conditions.  E.g. some code (such
as iovfprintf.c) is based on software that was developed by the
University of California, Berkeley, for the Berkeley Software
Distribution (BSD-4.4), and bears their copyright;  and one
file (floatconv.c) is derived from ("free") code copyrighted AT&T.
