libutils

Yet another library of C utilities.

2005-03-15 Download version 1.0 (libutils-1.0.tar.gz)

User Manual
Detailed Documentation

March 15, 2005

There are many different C libraries encompassing the same type of "utility" functions. This library is yet another version. It has been useful for me as I have accumulated scraps of useful code and it works (generally) under Solaris, Linux and Windows. Some ideas are borrowed from perl-isms and some from java. The library covers such areas as in-place macros for file opens with appropriate warnings; consistent logging output macros; and various text-processing options. A word of warning: it only works in the GNU environment (gcc, etc.). The software is released under the GNU General Public License.

The primary purpose of releasing this code and documenting it is for my own benefit, however others may find it useful. If you do, I'd be happy to hear about it. However, the software is absolutely as-is and designed for my own purposes. As such, I am unlikely to be overly helpful - the source is the ultimate authority and could be modified or simply thrown away.

Background

This library of routines was initially developed when I was in graduate school to help with constructing some machine learning software. The initial goal had been to create a series of macros within a header file, thus making it extremely easy and flexible to use. Most of the output functions and "safe" operations were developed at that point, using as inspiration the rather remarkable GNU info on cpp and gcc (if you haven't dug into the depths of those documents, I highly recommend it).

As all things do, the software began to get rather complex for using only macros. Therefore I wrote additional functionality and included it in a library (e.g. libutils). It has continue to grow and develop in unorganized ways as I have needed it. Most recently I have extracted out logging facilities into a different library (libtxtlog or libwxlog) so that both text-based logging and wxWidgets based logging can be used.