IOLib version 4.0c
Official homepage: | http://iolib.sourceforge.net |
eMail: | robert.kausch@gmx.net |
This software is released under
the terms of the GNU Library General Public License (LGPL). See
the file 'Copying.lib' for details.
Contents
- What's new in IOLib 4.0c
- About the author
- What is IOLib?
- Why do I need it?
- How do I use it?
- Reporting bugs
What's new in IOLib 4.0c
The following things have been added or changed since release 4.0b:
- applied a patch for InStream::InputLine that fixes a data curruption bug
About
the author
- applied a patch that makes IOLib work on SGI Irix machines
- changed the port number in the client/server test to 17000 to avoid conflicts on machines running qotd servers
Note: IOLib 4.0c is binary compatible with older 4.0 versions.
IOLib was written by Robert Kausch. You can contact me at robert.kausch@gmx.net.
I am an 18 year old student from Lueneburg/Germany. I started writing computer programs in 1994. My
first programming language was QBasic (it was part of MS-DOS). In 1996 I started to write Windows
applications with GFA-Basic (a mixture of Basic, Pascal and C). After a hard disk failure in mid 1998
nearly all my source code was lost and so I bought a book about C++ and started learning.
Currently I'm maintaining two OpenSource projects. SMOOTH
and IOLib.
What
is IOLib?
IOLib is a universal multiplatform IO library. It is implemented in C, C++ and Objective-C and
is available for many different platforms. IOLib provides an unified interface for accessing
different types of streams.
IOLib supports multiple kinds of data IO:
- Integer IO in Intel HEX order
It supports the following types of streams:
- Integer IO in RAW HEX order
- Integer IO in VAX HEX order
- Bit by bit IO (PBD)
- String IO
- Raw data IO
- POSIX files
IOLib provides two classes
>InStream< and >OutStream< which provide input and
output mechanisms (you cannot use input and output operations
with one single object, but you can create a crosslinked stream).
- ANSI files
- Windows file handles
- BSD sockets
- SOCKS4 connections
- SOCKS5 connections
- memory buffers
Why
do I need it?
So which advantages does IOLib have over other solutions?
The great advantage of IOLib is, that it provides an unified
interface to different types of streams. It doesn't matter
what type of stream you intend to access, the interface is always
the same.
Another important point is that IOLib is compatible with many
different operating systems and that implementations are available in
different programming languages (currently in C, C++, Objective C).
Furthermore, if you are using IOLib you
don't have to care about the byte order in your binary files
anymore. IOLib supports Intel, Motorola (Raw) and VAX byte
order and automatically adjusts to the host machine.
A new feature of IOLib 2.0 was the capability of filtering your
data before writing it to a file. The filter support has been
improved in the 4.x series. The API now supports compression/decompression
filters and filters that have to process a file in one step.
How
do I use it?
First you have to compile IOLib for your system. Since this release, IOLib is compatible
with the following operating systems and compilers:
- Linux GCC
If you want to have your compiler/OS supported send me a download URL or send a copy to my home address (ask for it via eMail).
- Windows GCC-MinGW32 (no shared Objective C library)
- Windows GCC-Cygwin (no shared Objective C library)
- Windows MS Visual C++ (C and C++ libraries only)
- Windows Borland C++ (static C and C++ libraries only)
- Windows LCC-Win32 (C libraries only)
- BeOS GCC
- QNX GCC
- DOS GCC-DJGPP (static libraries only, no socket support)
- FreeBSD GCC
- Tru64 Unix Compaq C (static C library only)
- Solaris GCC
- SGI Irix GCC
- possibly some others, porting should be easy
Just type 'make' ('nmake' for MSVC, 'make -s' for LCC) in the distribution directory to get a list of the available targets. Then type 'make [target]' to
compile IOLib for your system and programming language.
Type 'make [target]-install' to install the library in the default prefix (usually /usr/local or /usr)
and optionally 'make [target]-clean' to clean the build directory.
You can change the install prefix by editing the toplevel makefile.
Please choose your programming language:
C
C++
Objective C
Reporting
bugs
If you think you've found a bug in IOLib please submit a full bug
report including a detailed description of how to reproduce the
bug (it would be very nice if you included the source code that
produces the bug in your report). If possible, please write a
patch that fixes the bug and send it along with the report.
If you have found any bugs in IOLib please contact me at
robert.kausch@gmx.net.
Please visit the official IOLib homepage at iolib.sourceforge.net and try the newest release of IOLib
first!