Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libpbuffer is a library for dynamic buffer handling written in C.

This document explains briefly how to use this library.

==========

INITIALIZING AND DESTROYING:
----------------------------
/* declaring a buffer */
pbuffer *buffer;

/* allocating and initializing the buffer */
buffer = pbuffer_init();

/* freeing the buffer */
pbuffer_free(buffer);

SETTING THE BUFFER:
-------------------
/* set one raw byte of data */
pbuffer_set(buffer, 0x31, 1);

/* set a string */
pbuffer_strcpy(buffer, "First string");

/* include some variables */
pbuffer_sprintf(buffer, "This is string %d", count);

ADDING TO THE BUFFER:
---------------------
/* add raw data to the end */
pbuffer_add(buffer, 0x33, 1);

/* add a string to the end */
pbuffer_strcat(buffer, "\nSecond string");

/* add a string with vars to the end */
pbuffer_add_sprintf(buffer, "\nThis is string %d", count+1);

OTHER FUNCTIONS:
----------------
/* extract two bytes of raw data to dst */
pbuffer_extract(buffer, dst, 2);

/* Shift the beginning of the buffer 10 bytes forward */
pbuffer_shift(buffer, 10);

/* Make sure the buffer is large enough for holding 10 bytes */
pbuffer_assure(buffer, 10);

SOME MACROS:
------------
/* return to the start of the buffer (after shifting) */
pbuffer_start(buffer);

/* give the position of the last byte in the buffer */
printf(pbuffer_end(buffer));

/* give the space left (before we need to grow) */
printf(pbuffer_unused(buffer));

==========

Linking against pbuffer, you just add -lpbuffer to the commandline of your linker.

More functions will appear as soon as they are needed, but for now that's it.

The buffer itself is just a typedef to a struct pbuffer:

struct pbuffer {
	size_t length;
	size_t allocated;
	void *start;
	void *data;
};

==========

To build the code, you need to run autoreconf first. This will create the necesary
files.

About

Library for dynamic buffer handling

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages