gzx Code
Status: Beta
Brought to you by:
felo80
| File | Date | Author | Commit |
|---|---|---|---|
| resource | 2013-05-23 |
|
[306259] autotools |
| src | 2013-05-23 |
|
[306259] autotools |
| util | 2013-05-23 |
|
[306259] autotools |
| .gitignore | 2013-05-23 |
|
[306259] autotools |
| CHANGES | 2012-03-12 |
|
[cd76f7] Merge branch 'master' of ssh://gzx.git.sourcefo... |
| COPYING | 2011-03-19 |
|
[787cb7] Initial commit |
| INSTALL | 2013-05-23 |
|
[306259] autotools |
| Makefile.am | 2013-05-23 |
|
[54c4de] Makefile.am: don't install fuse scripts unless ... |
| Makefile.old | 2013-05-23 |
|
[5b869e] autotools; code formatting |
| README | 2012-03-12 |
|
[cd76f7] Merge branch 'master' of ssh://gzx.git.sourcefo... |
| autogen.sh | 2013-05-23 |
|
[5b869e] autotools; code formatting |
| configure.ac | 2013-05-23 |
|
[d2b609] fix configure --without-fuse |
| gzxless | 2012-03-12 |
|
[cd76f7] Merge branch 'master' of ssh://gzx.git.sourcefo... |
| targzmount | 2012-03-12 |
|
[cd76f7] Merge branch 'master' of ssh://gzx.git.sourcefo... |
`libgzx' is a C library that provides GZIP compliant compression with random
access read support.
`gzx' is a random access file compression command line tool.
`gzxfuse' and `gzxless' are FUSE-based tools for viewing and accessing gzx
compressed files. For a file GZX_FILE.gz, gzxfuse creates a file
GZX_FILE/access which can be accessed like a regular file.
`libavacs' is a C library for command line option parsing and automated help
page generation.
Installation
============
See the file `INSTALL' for installation instructions
Using libgzx
============
The main functions declared in the header `gzx/gzx.h' roughly correspond to the
standard library functions fopen(), fflush(), fclose(), fseek(), ftell(), fread(),
fwrite() and ferror():
Open file:
gzx_file *gzx_open(const char*const filename,const char mode);
Open a stream:
gzx_file *gzx_sopen(FILE *const file,const char mode);
Flush gzx stream:
int gzx_flush(gzx_file *const gzx);
Close the stream:
int gzx_close(gzx_file *const gzx);
Seek to a position (read access only):
int gzx_seek(gzx_file *const gzx,off_t offset,int whence);
Get the current stream position:
off_t gzx_tell(const gzx_file *const gzx);
Read <size> bytes into the buffer at <ptr>:
size_t gzx_read(gzx_file *const gzx,void *ptr,size_t size);
Write <size> bytes to the stream:
size_t gzx_write(gzx_file *const gzx,const void *ptr,size_t size);
Check if an error occured in gzx_read() or gzx_write():
int gzx_error(gzx_file *const gzx);
Using libavacs
==============
Main funtions in `avacs/avacs.h':
- avacs_parser_create()
- avacs_parser_destroy()
- avacs_addoption()
- avacs_parseargs()
- avacs_printusage().
In addtion some predefined string conversion functions are provided:
- avacs_convi: int
- avacs_convu: unsigned int
- avacs_convl: long
- avacs_convlu: unsigned long
- avacs_convf: float
- avacs_convc: char
- avacs_convs: astr
Usage example:
#include <stdio.h>
#include "avacs/avacs.h"
int main(int ac, char *av[])
{
int pac;
int help=0;
float value=-1;
astr *text=astr_create("something");
avacs_parser *p=
avacs_parser_create(av[0], "avacs program", "[OTHERARGS]");
if((p==0)||(text==0)) return 1;
avacs_addoption(p, "help", 'h', &help, 0, "give this help", 0);
avacs_addoption(p, "text", 't', text, avacs_convs, "provide a text", "STRING");
/* question mark (?XYZ) indicates there's no default value for this option */
avacs_addoption(p, "value", 'v', &value, avacs_convf, "provide a value", "?XYZ");
if(ac==1) avacs_printusage(p, stdout);
else
{
pac=avacs_parseargs(p, ac, av);
if(help||(pac<0))
{
avacs_printusage(p, stdout);
}
else
{
fprintf(stdout, "text is %s\n", astr_beg(text));
fprintf(stdout, "value is %d\n", value);
}
}
avacs_parser_destroy(p);
astr_destroy(text);
return 0;
}