Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JeffBezanson/libsupport
a library of useful C utilities
https://github.com/JeffBezanson/libsupport
Last synced: 16 days ago
JSON representation
a library of useful C utilities
- Host: GitHub
- URL: https://github.com/JeffBezanson/libsupport
- Owner: JeffBezanson
- Created: 2012-02-17T20:51:54.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-10-22T04:28:04.000Z (about 11 years ago)
- Last Synced: 2024-10-26T03:09:59.434Z (17 days ago)
- Language: C
- Homepage:
- Size: 133 KB
- Stars: 63
- Watchers: 7
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## What's here
This is a collection of useful public-domain C code by myself and others.
The best way to use it is to pick and choose the bits you need and
statically compile them in.
Take a look at `libsupportinit.c` to see if there are any initialization
functions you might need to call.
A summary of the available functionality follows.### IOS
A replacement for parts of C's stdio library, supporting file-descriptor-backed
and memory-backed I/O streams with a uniform interface. Also has special
support for UTF-8, and slightly relaxed semantics that allow keeping data
buffered longer.### Bit vectors
This is a pretty thorough bit vector library. The most interesting thing about
it is that it supports many operations on contiguous sub-vectors of bits.
This is helpful when implementing strided multi-dimensional arrays of bits.### Arraylist
A very simple growable array.
### dirpath.c
Contains the function `get_exename`, which can tell you the path to your
running executable on Linux, Windows, and Mac OS X. Allows you to locate
application files without "installing" anything.### dump.c
A routine for printing hex dumps.
### Hashing
High-quality hash functions for strings and integers.
### Hash table
A fast linear-probing hash table. Hardly ever allocates memory when
inserting a key. It generally avoids collisions by using good hash functions.
Use it by defining your hash function and equality predicate, then
invoking a macro. See `ptrhash.c` for an example.### Other
Some convenient wrapper functions for using sockets and time info on
multiple platforms.